با سلام
سوال من اینه اگه خواهشن تکراری هستش جوابه منو بدین
سواله اینجانب : میخوام وقتی سیستم به اینترنت متصل شد یه پیغام بده که به اینترنت کانکت شده . با چه ماژول و ..... میتونم استفاده کنم ؟
ممنون . از همگی ممنون
با سلام
سوال من اینه اگه خواهشن تکراری هستش جوابه منو بدین
سواله اینجانب : میخوام وقتی سیستم به اینترنت متصل شد یه پیغام بده که به اینترنت کانکت شده . با چه ماژول و ..... میتونم استفاده کنم ؟
ممنون . از همگی ممنون
آخرین ویرایش به وسیله Mbt925 : یک شنبه 18 اسفند 1387 در 16:12 عصر
با اینکه سوالت تکراریه ولی:
اینو بزار تو جنرال
Private Declare Function InternetGetConnectedState Lib "wininet.dll" (ByRef lpdwFlags As Long, ByVal dwReserved As Long) As Long
اینم بزار تو یه تایمر(هر وقت به اینترنت وصل بشه اطلاع میده)
IsOffLine = InternetGetConnectedState(INTERNET_CONNECTION_MODE M_BUSY, 0&)
If IsOffLine = 0 Then
MsgBox "Be Internet Connect Nist"
Else
MsgBox "Be Internet Connect Ast"
End If
موفق باشی
سلام دوست عزیز این مطمئن ترین روشه
موفق باشیدکد HTML:Const NETWORK_ALIVE_AOL = &H4 Const NETWORK_ALIVE_LAN = &H1 Const NETWORK_ALIVE_WAN = &H2 Private Declare Function IsNetworkAlive Lib "SENSAPI.DLL" (ByRef lpdwFlags As Long) As Long Private Sub Form_Load() Dim CRes As Long If IsNetworkAlive(CResult) = 0 Then MsgBox " Not Connected to a Network!" Else MsgBox "Connected to a" & IIf(CRes = NETWORK_ALIVE_AOL, "AOL", IIf(CRes = NETWORK_ALIVE_LAN, "LAN", "WAN")) & "Network" End If End Sub
دوست عزیز اگر می خواهید مطمئن شوید که به اینترنت وصل هستین یا نه از کد پست شماره 2 استفاده کنید .
من خودم همیشه از این استفاده می کنم .
البته راه دیگه ای هست از طریق کنترل Winsock . به اینصورت که شما مثلا به سایت Google.Com متصل می شوین و وقتی Event مربوط به اتصال جرا شد اون وقت مطمئن باشین که اتصال انجام شده است.
باتشکر احسان
مشکل هر دو شون اینجانست وقتی کابل شبکه رو در می یارید میگه وصل نیست . در حالی که اگه آپی رو تغییر بدین همیشه وصله ولی آیا صفحه باز می شه یا می شه جایی رو (مثل یاهو) پینگ زد . نه نمیشه ولی کد شما بازم نشون میده کنکته. بررسی کنید!
من یه راه حل دارم
یه جایی رو پینگ بزنید اگه پاسخی دریافت شد یعنی کانکته وگر نه در هر شرایطی کانکت نیست.
یه برنامه ضمیمش می کنم. یه فایل dll هم داره که باید add کنید.
اینکه هنوز سوالات زیادی دارم دلیل زنده بودنم است!
يك مساله
آيا وضعيت اينترنت adsl رو هم ميشه بررسي كرد؟
سلام دوستان!
به نظر من بهترین راه استفاده از ping هست. مرورگرهایی مثل opera یا firefox هم برای چک کردن اتصال به اینترنت از همین روش ارسال و دریافت packet های کوچک استفاده می کنند.
در پست دوم، چون اغلب دو تا Connection وجود داره، نه نمیشه. اگر تنها Local وصل باشد باز هم پیغام اتصال به اینترنت داده میشه.
در پست سوم یک مشکل کوچولو وجود داره. شما هر نوع کانکشنی که داشته باشید همیشه با پیغام Connected to aWAN مواجه میشید. مگر اینکه هیچ کدام از کانکشن ها وصل نباشند.
مشکل در اسم متغیر هست. یه متغیر با نام CResult را به تابع داده ایم درحالی که بعد آمده مقدار CRes را چک کرده که خب همیشه 0 هست. اگر CResult رو به CRes تغییر نام بدید مشکل حل میشه. اونوقت در مورد وضعیت adsl هم جواب میده. یعنی اگر تنها Local متصل باشه پیغام LAN میده و اگر به اینترنت متصل باشید پیغام WAN میده.
روش پینگ کردن هم روش خوبی هست اما برای کارهای on time مناسب نیست.
یه روش دیگه استفاده از تابع isDestinationReachable هست که تقریباً مشابه پینگ کردن عمل می کنه. یک url بهش میدید و چند خروجی داره که از رو خروجی ها میشه فهمید که به اینترنت وصل هستیم یا نه. پس این هم از لحاظ زمانی سریع نیست.
موفق باشید/
الگوریتم هایی که تاریخچه خود را فراموش می کنند، محکوم به تکرار آن هستند.
ممنون xxxxxx-xxxxxx عزیز به نکته خوبی اشاره کردی ولی
من این راه رو قبلا انجام دادم (Cresult به Cres) - جواب نمیده.
امتحان کنید!
به نظر من:
سیستم اتصال به اینترنت خارجی هایی که از این سیستم استفاده می کنن با ما فرق داره
اونا یه چیز می دونن اینکه کابل شبکه رو بزنن تو کارت >>> اینترنت داشته باشن! نه *** نه محدودیت IP-valid اونا با IP ولید کانکت می شن پس این براشون جواب می ده.
راه حل ping عالیه . حداقل برا ما ایرانیا.
برنامشو تو پست قبلیم گذاشتم...
اگه راه جدیدی به ذهنتون می رسه من که خیلی مشتاقم.
SUCCESS
مرسي بسيار جالب بود
يادم رفت بگم فابل dll كجاست
آخرین ویرایش به وسیله xxxxx_xxxxx : یک شنبه 10 آبان 1388 در 04:08 صبح دلیل: ادغام دو پست
به خاطر اينکه اشتباه از تابع استفاده ميشهدر پست سوم یک مشکل کوچولو وجود داره. شما هر نوع کانکشنی که داشته باشید همیشه با پیغام Connected to aWAN مواجه میشید
از اين ماژول استفاده کنيد
Option Explicit
Public Declare Function InternetGetConnectedState Lib "wininet.dll" (ByRef lpdwFlags As Long, ByVal dwReserved As Long) As Long
'Internet connection VIA Proxy server.
Public Const ProxyConnection As Long = &H4
'Modem is busy.
Public Const ModemConnectionIsBusy As Long = &H8
'Internet connection is currently Offline
Public Const InternetIsOffline As Long = &H20
'Internet connection is currently configured
Public Const InternetConnectionIsConfigured As Long = &H40
'Internet connection VIA Modem.
Public Const ModemConnection As Long = &H1
'Remote Access Server is installed.
Public Const RasInstalled As Long = &H10
'Internet connection VIA LAN.
Public Const LanConnection As Long = &H2
Public Function IsLanConnection() As Boolean
Dim dwflags As Long
'return True if LAN connection
Call InternetGetConnectedState(dwflags, 0&)
IsLanConnection = dwflags And LanConnection
End Function
Public Function IsModemConnection() As Boolean
Dim dwflags As Long
'return True if modem connection.
Call InternetGetConnectedState(dwflags, 0&)
IsModemConnection = dwflags And ModemConnection
End Function
Public Function IsProxyConnection() As Boolean
Dim dwflags As Long
'return True if connected through a proxy.
Call InternetGetConnectedState(dwflags, 0&)
IsProxyConnection = dwflags And ProxyConnection
End Function
Public Function IsConnected() As Boolean
'Returns true if there is any internet connection.
IsConnected = InternetGetConnectedState(0&, 0&)
End Function
Public Function IsRasInstalled() As Boolean
Dim dwflags As Long
'return True if RAS installed.
Call InternetGetConnectedState(dwflags, 0&)
IsRasInstalled = dwflags And RasInstalled
End Function
Public Function ConnectionTypeMsg() As String
Dim dwflags As Long
Dim Msg As String
'Return Internet connection msg.
If InternetGetConnectedState(dwflags, 0&) Then
If dwflags And InternetConnectionIsConfigured Then
Msg = Msg & "Internet connection is configured." & vbCrLf
End If
If dwflags And LanConnection Then
Msg = Msg & "Internet connection via a LAN"
End If
If dwflags And ProxyConnection Then
Msg = Msg & ", and connection is through a proxy server."
Else
Msg = Msg & "."
End If
If dwflags And ModemConnection Then
Msg = Msg & "Internet connection via a Modem"
End If
If dwflags And InternetIsOffline Then
Msg = Msg & "Internet connection is currently offline."
End If
If dwflags And ModemConnectionIsBusy Then
Msg = Msg & "Modem is busy with a non-Internet connection."
End If
If dwflags And RasInstalled Then
Msg = Msg & "Remote Access Services are installed on local system."
End If
Else
Msg = "You are currently not connected to the internet."
End If
ConnectionTypeMsg = Msg
End Function
روش بعدی استفاده از تابع IsDestinationReachable :
Private Type QOCINFO
dwSize As Long
dwFlags As Long
dwInSpeed As Long
dwOutSpeed As Long
End Type
Private Declare Function IsDestinationReachable Lib "sensapi.dll" _
Alias "IsDestinationReachableA" _
(ByVal lpszDestination As String, lpQOCInfo As QOCINFO) As Long
Private Function IsConn() As String
Dim qoc As QOCINFO
ret = IsDestinationReachable("http://www.google.com", qoc)
With qoc
Select Case .dwFlags
Case 1: IsConn = "LAN"
Case 2: IsConn = "RAS"
Case Else: IsConn = "No Conn"
End Select
End With
End Function
Private Sub Command1_Click()
MsgBox IsConn
End Sub
همونطور که قبلاً گفتم این تابع عمل ping رو انجام میده و نتایجی رو بر میگردونه که یکی از اون نتایج اطلاع از نوع Connection هست.
QOC = Quality of Connection
RAS = Remote Access Server
الگوریتم هایی که تاریخچه خود را فراموش می کنند، محکوم به تکرار آن هستند.
این هایی که گذاشتین همشون اگر مودم adsl روشن باشه وصعیت اتصال رو نشون میدن شاید یک نفر مودمش روشن باشه اما به اینترنت هنوز وصل نشده باشه
در این مورد کدی دارید ؟
سلام علیکمنوشته شده توسط sobhan93
کد زیر را بررسی کنید:
Option Explicit
Private Declare Function InternetGetConnectedState Lib "wininet.dll" (ByRef lpdwFlags As Long, ByVal dwReserved As Long) As Long
Public Function IsInternetConnected() As Boolean
IsInternetConnected = CBool(InternetGetConnectedState(0&, ByVal 0&))
End Function
Private Sub Form_Load()
MsgBox IsInternetConnected
End Sub
موفق باشید
.: مداحی دلنشین شهیدی که در زادروز ولادتش پرکشید [ تصاویر... ]
.: مداحی دلنشین شهید غلامعلی رجبی [ تصاویر... ]
.: لطفا سوالاتی که قابل طرح در انجمن هستند را در خصوصی ارسال نفرمائید.
اینم نمیشه تست کردم همش true هست
ولی مودم adsl رو خاموش کردم false نشون داد
بنده به مودم ADSL دسترسی ندارم اما این تابع را با پارامتر نیز تست کنین:اینم نمیشه تست کردم همش true هست
ولی مودم adsl رو خاموش کردم false نشون داد
Private Const INTERNET_CONNECTION_PROXY As Long = &H4
Private Declare Function InternetGetConnectedState Lib "wininet.dll" (ByRef lpdwFlags As Long, ByVal dwReserved As Long) As Long
Private Sub Command1_Click()
MsgBox CBool(InternetGetConnectedState(INTERNET_CONNECTIO N_PROXY, ByVal 0&))
End Sub
موفق باشید
.: مداحی دلنشین شهیدی که در زادروز ولادتش پرکشید [ تصاویر... ]
.: مداحی دلنشین شهید غلامعلی رجبی [ تصاویر... ]
.: لطفا سوالاتی که قابل طرح در انجمن هستند را در خصوصی ارسال نفرمائید.
ارروررررررررررررررررررر
شاید بخاطر فاصله های اضافی باشد که در پارامتر "INTERNET_CONNECTIO N_PROXY" پست 17 اضافه شده استنوشته شده توسط sobhan93
.: مداحی دلنشین شهیدی که در زادروز ولادتش پرکشید [ تصاویر... ]
.: مداحی دلنشین شهید غلامعلی رجبی [ تصاویر... ]
.: لطفا سوالاتی که قابل طرح در انجمن هستند را در خصوصی ارسال نفرمائید.
تست کردین؟
.: مداحی دلنشین شهیدی که در زادروز ولادتش پرکشید [ تصاویر... ]
.: مداحی دلنشین شهید غلامعلی رجبی [ تصاویر... ]
.: لطفا سوالاتی که قابل طرح در انجمن هستند را در خصوصی ارسال نفرمائید.
حاجی قبل اینکه اون اروری که ضمیمه کردم بده به همون فاصله ای که گفتین ایراد میگگرفت اما اونو خودم درستش کردم بعد این اروری که گذاشتمو داد
.: مداحی دلنشین شهیدی که در زادروز ولادتش پرکشید [ تصاویر... ]
.: مداحی دلنشین شهید غلامعلی رجبی [ تصاویر... ]
.: لطفا سوالاتی که قابل طرح در انجمن هستند را در خصوصی ارسال نفرمائید.