PDA

View Full Version : کد چک کردن کانکت بودن یا نبودن به اینترنت



__siavash__
سه شنبه 10 بهمن 1385, 19:53 عصر
با این کد میتونید چک کنید به اینترنت وصل هستید یا نه ! که میتونید اونو توی یه تایمر قرار بدید و هر لحظه وضعیت را چک کنید !



Private Declare Function InternetGetConnectedState Lib "wininet.dll" (ByRef lpdwFlags
As Long, ByVal dwReserved As Long) As Long


dim A As long
dim B as long
if InternetGetConnectedState(A, B) = 1 then
"msgbox "shoma be internet vasl hastd
Else
"msgbox "shoma be intenet vasl nistid

End IF

DotNet_King
شنبه 04 اسفند 1386, 16:36 عصر
با تشکر از کدتون ولی راهی دیگه ای وجود نداره مثلا به جای تایمر ، هندلی باشه هر وقت کاربر به اینترنت کانکت شد، برنامه رو مطلع کنه

__siavash__
شنبه 04 اسفند 1386, 16:45 عصر
با تشکر از کدتون ولی راهی دیگه ای وجود نداره مثلا به جای تایمر ، هندلی باشه هر وقت کاربر به اینترنت کانکت شد، برنامه رو مطلع کنه

والا نمیدونم اما ساده ترین راهش همینه که تو تایمر قرار بگیره با Interval مناسب !

DotNet_King
شنبه 04 اسفند 1386, 18:35 عصر
تایمر برای کار هایی که خیلی زمان کم و تکرار کمی داره مناسبه و برای اینکار که شاید برنامه از چند ساعت کار کنه مناسب نیست، سرعت پردازنده رو میگره و تو تسک منیجر راحت قابل شناسایی میشه - از رو تغییرات سی پی یو - و بنابراین اصلا نمیشه مخفی موند!
کسی راه حلش رو میدونه؟:متفکر:

Mbt925
شنبه 04 اسفند 1386, 20:51 عصر
با تشکر از کدتون ولی راهی دیگه ای وجود نداره مثلا به جای تایمر ، هندلی باشه هر وقت کاربر به اینترنت کانکت شد، برنامه رو مطلع کنه

نه ، همچین راهی وجود نداره.
استفاده از تایمر راه خوب و ساده ایه.


تایمر برای کار هایی که خیلی زمان کم و تکرار کمی داره مناسبه و برای اینکار که شاید برنامه از چند ساعت کار کنه مناسب نیست، سرعت پردازنده رو میگره و تو تسک منیجر راحت قابل شناسایی میشه - از رو تغییرات سی پی یو - و بنابراین اصلا نمیشه مخفی موند!
کسی راه حلش رو میدونه؟:متفکر:

راه حل برای تشخیص اتصال یا مخفی شدن از Task Manager؟

نه ، دوست عزیز ، استفاده از تایمر با اینتروال مناسب ، مشکلی نداره و حافظه ی خاصی اشغال نمی کنه.

__siavash__
شنبه 04 اسفند 1386, 22:14 عصر
حالا که این تاپیک اومد بالا این تابع رو هم معرفی کنم


Public Declare Function InternetGetConnectedStateEx Lib "wininet.dll" (ByRef lpdwFlags As Long, ByVal lpszConnectionName As String, ByVal dwNameLen As Long, ByVal dwReserved As Long) As Long

دو متغیر اول که توسط تابع مقدار دهی میشند اولی نوع اتصال و دومی نام کانکشنی رو که باهاش به اینترنت وصل هستید برمیگردنه !

ƒxmahdi
یک شنبه 05 اسفند 1386, 11:01 صبح
siavash جان از تابعی که معرفی کردید بسیار ممنون
چطور میشه از تمامی توابع داخل wininet.dll استفاده کرد فکر کنم اتصال به اینترنت و بدست آوردن سرعت را هم داشته باشه ؟

__siavash__
یک شنبه 05 اسفند 1386, 15:04 عصر
siavash جان از تابعی که معرفی کردید بسیار ممنون
چطور میشه از تمامی توابع داخل wininet.dll استفاده کرد فکر کنم اتصال به اینترنت و بدست آوردن سرعت را هم داشته باشه ؟

برای اتصال به اینترنت باید از توابع


Private Declare Function InternetAutodial Lib "wininet.dll" (ByVal dwFlags As Long, ByVal dwReserved As Long) As Long

که از کانکشن پیش فرض استفاده میکنه
یا از تابع

Public Declare Function RasDial Lib "RasApi32.dll" Alias "RasDialA" (lpRasDialExtensions As Any, ByVal lpszPhonebook As String, lprasdialparams As Any, ByVal dwNotifierType As Long, lpvNotifier As Long, lphRasConn As Long) As Long

استفاده کرد
یا این کد

Private Sub Command1_Click()
Dim res
res = Shell("rundll32.exe rnaui.dll,RnaDial " _
& "Your_Connection_Name ", 1)
End Sub
که به جای Your_Connection_Name باید نام کانکشن رو قرار داد (برای کانکشن DialUp)

البته من با هیچ کدوم نتونستم کانکت بشم, کانکشن DialUp نداشتم !
شما هم یه تست بکنید ؟

ƒxmahdi
یک شنبه 05 اسفند 1386, 18:50 عصر
من هم نتونستم کانکت بشم شما می دونید نام wininet.dll در پنجره Peferences برای اضافه کردن این dll چی هستش؟
اگه ممکنه یه مثال هم در مورد تابع زیر بزنید ممنون


Public Declare Function InternetGetConnectedStateEx Lib "wininet.dll" (ByRef lpdwFlags ...

__siavash__
یک شنبه 05 اسفند 1386, 22:49 عصر
Private Const INTERNET_CONNECTION_CONFIGURED = &H40
Private Const INTERNET_CONNECTION_LAN = &H2
Private Const INTERNET_CONNECTION_MODEM = &H1
Private Const INTERNET_CONNECTION_OFFLINE = &H20
Private Const INTERNET_CONNECTION_PROXY = &H4
Private Const INTERNET_RAS_INSTALLED = &H10
Private Declare Function InternetGetConnectedStateEx Lib "wininet.dll" (ByRef lpdwFlags As Long, ByVal lpszConnectionName As String, ByVal dwNameLen As Integer, ByVal dwReserved As Long) As Long
Private Sub Form_Load()
Dim Retval As Long
Dim Buffer As String

Me.AutoRedraw = True
Buffer = String(255, 0)
InternetGetConnectedStateEx Retval, Buffer, 255, 0

If (Retval And INTERNET_CONNECTION_CONFIGURED) = INTERNET_CONNECTION_CONFIGURED Then
Me.Print "Valid connection to the Internet, but it may or may not be connected."
End If
If (Retval And INTERNET_CONNECTION_LAN) = INTERNET_CONNECTION_LAN Then
Me.Print "use a Lan"
End If
If (Retval And INTERNET_CONNECTION_MODEM) = INTERNET_CONNECTION_MODEM Then
Me.Print "use a modem"
End If
If (Retval And INTERNET_CONNECTION_OFFLINE) = INTERNET_CONNECTION_OFFLINE Then
Me.Print "offline mode."
End If
If (Retval And INTERNET_CONNECTION_PROXY) = INTERNET_CONNECTION_PROXY Then
Me.Print "use a proxy server"
End If
If (Retval And INTERNET_RAS_INSTALLED) = INTERNET_RAS_INSTALLED Then
Me.Print "RAS installed."
End If
Me.Print Left(Buffer, InStr(Buffer, Chr(0)) - 1)
Me.Print "Connected to Internet: " + CStr(IsConnected)
End Sub
Private Function IsConnected() As Boolean
If InternetGetConnectedStateEx(0, vbNullString, 0, 0) = 1 Then
IsConnected = True
Else
IsConnected = False
End If
End Function

asd_moghadas
سه شنبه 28 دی 1389, 13:06 عصر
باسلام
من کدهای شمارا تست کردم من میخواهم موقعی که به اینترنت وصل میشود باهر نوع کانکشنی ازجمله vpnنرافزار ابدیت بشه همانند nod 32لطفا راهنمایی کنید.

shahram_g
چهارشنبه 29 دی 1389, 21:45 عصر
چطوري ميشه يك اتصال به اينترنت رو قطع كرد؟