Parsi Coders

نسخه‌ی کامل: سوال در مورد کانکت بودن
شما در حال مشاهده نسخه آرشیو هستید. برای مشاهده نسخه کامل کلیک کنید.
سلام.از کجا بفهمیم که 100% کانکت شدیم؟
با سورس زیر میشه اینو فهمید :
کد:
Private Const INTERNET_CONNECTION_LAN As Long = &H2
Private Const INTERNET_CONNECTION_MODEM_BUSY As Long = &H8
Private Const INTERNET_CONNECTION_OFFLINE As Long = &H20
Private Const INTERNET_CONNECTION_CONFIGURED As Long = &H40
Private Const INTERNET_RAS_INSTALLED As Long = &H10
Private Declare Function InternetGetConnectedState Lib "wininet.dll" (ByRef lpdwFlags As Long, ByVal dwReserved As Long) As Long

Private Sub Command_Click()
IsOffLine = InternetGetConnectedState(INTERNET_CONNECTION_MODEM_BUSY, 0&)
If IsOffLine = 1 Then
MsgBox "conected"
Else
MsgBox "not conected"
End If
End Sub
ولی بدی این سورس اینه که اگه مودم روشن کنی ولی اینترنت قطع باشه باز هم  پیغام کانکت بودن میده!
چجوری بفهمیم 100% به اینترنت وصل شدیم؟
با این ترفند درصد خطا کمتر میشه
If Me.Winsock1.LocalIP = "127.0.0.1" Then
MsgBox "NO Connect"
Else
MsgBox "OK Connect"
End If
روش جالبی بود ولی اگه مودم در حال روشن شدن باشه پیغام کانکت بودن میده!
یجا شندیم با دستور ping google.com اگه خروجی timeout شد یعنی وصل نیستی ولی
اگه خروجی به غیر از timeout شد یعنی وصل هستی! ولی خروجی ping چجوری بگیرم؟
شما واسه پسورد سندر هایی که می نویسید چه موقع پسورد ها رو ارسال می کنید؟ از کجا می فهمید طرف به اینترنت وصل شده یا نه؟
درود
چند تا ماژول داشتم سر همش کردم
یه چکش کن ببین کارتو راه میندازه یا نه :-)
[attachment=403]
با وینساک مشکلم حل کردم که مطمئن شدم 0% خطا داره.
فقط یه مشکل دیگه دارم ،اینتروال تایمر بیشتر از 60000 نمیشه ، اگه من بخوام اینتروال تایمر 10 دقیقه باشه باید
چکار کنم؟ یا سورسی هست که کار تایمر انجام بده ولی هر 10 دقیقه! چون می خوام پسورد ها رو هر 10 دقیقه بفرسته
هر مشکل از چند روش حل میشه. این که راحته Baw !
یکی اینکه می تونی از ساعت سیستم استفاده کنی.
حالا راه حلی که به نظر من بهتره و خوشم میاد :
یه تایمر با اینتروال 60000 که میشه 1 دقیقه.یه متغیر در نظر میگیری خارج کد تایمر. بعد کدش یه همچین چیزی میشه :
کد:
If counter = 10 Then
Call SendPass() 'تابع ارسال پسورد
counter = 0
Else
counter = counter + 1
End if
که اینجا تابع ارسال پسورد SendPass و متغیری که در نظر گرفتیم counter