PDA

View Full Version : لیست Connection های ویندوز



razavi_university
چهارشنبه 13 مهر 1384, 11:58 صبح
سلام
من تویه برنام ام احتیاج دارم به کلیه Network Connection های ویندوز دسترسی داشته باشم
یا حد اقل اونها رو ببینم

md_bluelily
چهارشنبه 13 مهر 1384, 17:41 عصر
با اسفاده از APIهای مربوط به RAS اینکار رو بکنید.

razavi_university
پنج شنبه 14 مهر 1384, 11:22 صبح
کامل توضیح بده من نفهمیدم

md_bluelily
شنبه 16 مهر 1384, 10:33 صبح
این برنامه برای VB6.0 نوشته شده یه نگاه بکنید :
'This program let you dial to your dial-up connections using whether
'the stored user name and password or the ones you specifies
'(It use RasDial for dialing)

'You need a form with a list,2 textbox and a command button

Option Explicit
Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (pDst As Any, ByVal pSrc As String, ByVal ByteLen As Long)
Private Declare Sub ZeroMemory Lib "kernel32.dll" Alias "RtlZeroMemory" (Destination As Any, ByVal Length As Long)

Const RAS95_MaxEntryName = 256
Const RAS_MaxPhoneNumber = 128
Const RAS_MaxCallbackNumber = RAS_MaxPhoneNumber

Const UNLEN = 256
Const PWLEN = 256
Const DNLEN = 12
Private Type RASDIALPARAMS
dwSize As Long ' 1052
szEntryName(RAS95_MaxEntryName) As Byte
szPhoneNumber(RAS_MaxPhoneNumber) As Byte
szCallbackNumber(RAS_MaxCallbackNumber) As Byte
szUserName(UNLEN) As Byte
szPassword(PWLEN) As Byte
szDomain(DNLEN) As Byte
End Type

Private Type RASENTRYNAME95
'set dwsize to 264
dwSize As Long
szEntryName(RAS95_MaxEntryName) As Byte
End Type

Private Declare Function RasDial Lib "rasapi32.dll" Alias "RasDialA" (ByVal lprasdialextensions As Long, ByVal lpcstr As String, ByRef lprasdialparamsa As RASDIALPARAMS, ByVal dword As Long, lpvoid As Any, ByRef lphrasconn As Long) As Long
Private Declare Function RasEnumEntries Lib "rasapi32.dll" Alias "RasEnumEntriesA" (ByVal reserved As String, ByVal lpszPhonebook As String, lprasentryname As Any, lpcb As Long, lpcEntries As Long) As Long
Private Declare Function RasGetEntryDialParams Lib "rasapi32.dll" Alias "RasGetEntryDialParamsA" (ByVal lpcstr As String, ByRef lprasdialparamsa As RASDIALPARAMS, ByRef lpbool As Long) As Long

Private Function Dial(ByVal Connection As String, ByVal UserName As String, ByVal Password As String) As Boolean
Dim rp As RASDIALPARAMS, h As Long, resp As Long
rp.dwSize = Len(rp) + 6
ChangeBytes Connection, rp.szEntryName
ChangeBytes "", rp.szPhoneNumber 'Phone number stored for the connection
ChangeBytes "*", rp.szCallbackNumber 'Callback number stored for the connection
ChangeBytes UserName, rp.szUserName
ChangeBytes Password, rp.szPassword
ChangeBytes "*", rp.szDomain 'Domain stored for the connection
'Dial
resp = RasDial(ByVal 0, ByVal 0, rp, 0, ByVal 0, h) 'AddressOf RasDialFunc
Dial = (resp = 0)
End Function

Private Function ChangeToStringUni(Bytes() As Byte) As String
'Changes an byte array to a Visual Basic unicode string
Dim temp As String
temp = StrConv(Bytes, vbUnicode)
ChangeToStringUni = Left(temp, InStr(temp, Chr(0)) - 1)
End Function

Private Function ChangeBytes(ByVal str As String, Bytes() As Byte) As Boolean
'Changes a Visual Basic unicode string to an byte array
'Returns True if it truncates str
Dim lenBs As Long 'length of the byte array
Dim lenStr As Long 'length of the string
lenBs = UBound(Bytes) - LBound(Bytes)
lenStr = LenB(StrConv(str, vbFromUnicode))
If lenBs > lenStr Then
CopyMemory Bytes(0), str, lenStr
ZeroMemory Bytes(lenStr), lenBs - lenStr
ElseIf lenBs = lenStr Then
CopyMemory Bytes(0), str, lenStr
Else
CopyMemory Bytes(0), str, lenBs 'Queda truncado
ChangeBytes = True
End If
End Function

Private Sub Command1_Click()
Dial List1.Text, Text1, Text2
End Sub


Private Sub List1_Click()
Dim rdp As RASDIALPARAMS, t As Long
rdp.dwSize = Len(rdp) + 6
ChangeBytes List1.Text, rdp.szEntryName
'Get User name and password for the connection
t = RasGetEntryDialParams(List1.Text, rdp, 0)
If t = 0 Then
Text1 = ChangeToStringUni(rdp.szUserName)
Text2 = ChangeToStringUni(rdp.szPassword)
End If
End Sub

Private Sub Form_Load()
'example created by Daniel Kaufmann (daniel@i.com.uy)
'load the connections
Text2.PasswordChar = "*"
Command1.Caption = "Dial"
Dim s As Long, l As Long, ln As Long, a$
ReDim r(255) As RASENTRYNAME95

r(0).dwSize = 264
s = 256 * r(0).dwSize
l = RasEnumEntries(vbNullString, vbNullString, r(0), s, ln)
For l = 0 To ln - 1
a$ = StrConv(r(l).szEntryName(), vbUnicode)
List1.AddItem Left$(a$, InStr(a$, Chr$(0)) - 1)
Next
If List1.ListCount > 0 Then
List1.ListIndex = 0
List1_Click
End If
End Sub

امیدوارم بدردتون بخوره. من توی 9X امتحان کردم جواب داده بود (زمون جوونیام).

smt_414
سه شنبه 28 اسفند 1386, 17:05 عصر
سلام
در سایت جستجو کردم و راهی برای اینکه چگونه می توان ( default Connection) را توسط برنامه اجرا(بازش) کرد ندیدم
چگونه میشه این کار رو انجام داد؟؟
با تشکر

smt_414
چهارشنبه 29 اسفند 1386, 17:33 عصر
سلام
کسی برای این سوال جوابی نداره !؟

razavi_university
پنج شنبه 01 فروردین 1387, 02:09 صبح
چند راه داره
بستگی داره از کدوم راحتر باشین!!
- از طریق کار با دستور Rasdial که مربوط به Command هاست
- از طریق API های Ras (در MSDN سرچ کنین و یا اینترنت )
- از طریق کامپوننت های اینکاره مثل KdTele

smt_414
پنج شنبه 01 فروردین 1387, 15:30 عصر
سال نو مبارک
سلام

- از طریق کار با دستور Rasdial که مربوط به Command هاست
- از طریق API های Ras (در MSDN سرچ کنین و یا اینترنت )
- از طریق کامپوننت های اینکاره مثل KdTele

ظاهرا نباید کار سختی باشه
شما کدوم راه رو پیشنهاد می دید؟

Satyar
پنج شنبه 01 فروردین 1387, 18:19 عصر
salam.
baraye connect shodan be MS EXchange az tarighe
#C
ya kollan Visual Studio chi?man bayad be Exhcnage connect besham va bd mohtaviyate foldere "status" esh ro download konam ro HDD am.

vase in akr chi pishnahad mikonid?:افسرده:

bebakhsid ke finglish minevisam.inja fonte farsi nadaram:خجالت:

razavi_university
جمعه 02 فروردین 1387, 00:04 صبح
شما کدوم راه رو پیشنهاد می دید؟
Command رو پیشنهاد نمی کنم. (به درد استفاده در برنامه نمی‌خورن و خودشون هم از API ها استفاده می کنند)
اگه می خوایید کارتون راحت باشه و با چند تا کلیک و 4 خط کد، DialUp تون راه بیفته از کامپوننت هایی مثل KdTele انتخابی خوبی هستند (به لیسانس دار بودن آن توجه کنید )
اگه می خوایید دستتون باز باشه و همه چیز دست خودتون باشه پیشنهاد می کنم از API استفاده کنید (هرچند استفاده از آنها یکم کار می‌بره. سخت نیستا:چشمک: از نرم‌افزارAPI Viewer استفاده کنین راحتره)



baraye connect shodan be MS EXchange az tarighe
بیشتر توضیح بده البته به فارسی (قوانین سایت (http://barnamenevis.org/forum/showthread.php?t=51814) رو حتما بخونین-قانون 11:اشتباه:)

smt_414
جمعه 02 فروردین 1387, 00:42 صبح
سلام

اگه می خوایید کارتون راحت باشه و با چند تا کلیک و 4 خط کد، DialUp تون راه بیفته از کامپوننت هایی مثل KdTele انتخابی خوبی هستند (به لیسانس دار بودن آن توجه کنید )
با kdtele3.6 کار کردم
و در حال حاضر فقط به همون مورد که اشاره کردم احتیاج دارم اگه کمی در موردش توضیح بدید ممنون می شم(اگه کدی هم براش بذارید عالی میشه )

razavi_university
جمعه 02 فروردین 1387, 02:12 صبح
KdTele مثال‌های زیادی داره میتونی ازشون استفاده کنی
دنبال AutoDial بگرد About Remote Access Service (http://msdn2.microsoft.com/en-us/library/aa373643%28VS.85%29.aspx)
مثال استفاده از سایت Code Project (http://www.codeproject.com/KB/IP/afdialer.aspx)

Satyar
جمعه 02 فروردین 1387, 11:58 صبح
Command


بیشتر توضیح بده البته به فارسی (قوانین سایت (http://barnamenevis.org/forum/showthread.php?t=51814) رو حتما بخونین-قانون 11:اشتباه:)



bebakhsid ke finglish minevisam.inja fonte farsi nadaram

:خجالت:
سلام.آقا من که گفتم اینجا فونت فارسی ندارم عزیز.:افسرده:
به هر حال ببخشید.:خجالت:

بگذریم.ببین عزیز,کلا توضیح مخصتری که بخوام عرض کنم خضورت اینجوری میشه:
من زبان برنامه نویسی که انتخاب کردم,سی شارپ هست الان. زیاد که چه عرض کنم,اصلا آشنایی باهاش ندارم,ولی خوب به درد کار من میخوره.چون خیلی راجع به زبونی که به درد پروژه ام بخوره فکر و تحقیق کردمو و آخرسرش به سی شارپ یا کلی بگم,به ویژوال استدیو رسیدم.چون من قرار هست که با MS Exchange کار کنم.
حالا بگذریم. اولین قدمی که من باید بردارم این هست که بتونم از طریق همین ویژوال استدیو با هر کدوم از زبونهاش حالا ASP,VB یا هرکدوم..حتی خود سی شارپ به MS Exchange وصل بشم و بتونم محتویات داخل یکی از پوشه هاش به نام Status رو روی هارد دیسکم ذخیره کنم.
مراحل بعدیش رو بعدا میگم.فعلا مهمترین مرحله این کار,همین وصل شدن و ارتباط برقرار کرذن با MS Exchange هست.
ممنون میشم اگه بتونید کمکم کنید.:خجالت::قلب:

smt_414
جمعه 02 فروردین 1387, 23:19 عصر
سلام

KdTele مثال‌های زیادی داره میتونی ازشون استفاده کنی
دنبال AutoDial بگرد About Remote Access Service
مثال استفاده از سایت Code Project
لینک ها رو دیدم و اون برنامه که با C++ بود که البته چیز زیادی متوجه نشدم

( default Connection) را توسط برنامه اجرا(بازش) کرد
برای کار با KDTELE می تونید کد مورد نظر رو لطف کنید

اگه می خوایید کارتون راحت باشه و با چند تا کلیک و 4 خط کد، DialUp تون راه بیفته از کامپوننت هایی مثل KdTele انتخابی خوبی هستند

razavi_university
شنبه 03 فروردین 1387, 00:19 صبح
مقالات آموزشی زیادی در مورد کار با KdTele توی سایت هست
مقالات آموزشی KDTele .. (http://barnamenevis.org/forum/showthread.php?t=68320). کاری از یکی از دوستان در بخش دلفی ولی برای آشنایی با این کامپوننت بد نیست
برای کار با API ها نرم‌افزار API Viewer (http://www.activevb.de/rubriken/apiviewer/index-apiviewereng.html) بدک نیست.(سر تابعها و متغیر های مورد نیاز رو با سینتکس زبان #C میده)

razavi_university
شنبه 03 فروردین 1387, 01:02 صبح
فعلا مهمترین مرحله این کار,همین وصل شدن و ارتباط برقرار کرذن با MS Exchange هست.

پیشنهاد می‌کنم کتاب C# Network Programing (http://books.google.com/books?id=Iv8evi8i258C&q=network+programing%2Bc%23&dq=network+programing%2Bc%23&ei=yCHkR-rhM5jWyATditnYBA&pgis=1) رو بخونین