Цитата sashadeg:
я то хочу полоску прогресса GUICtrlCreateProgress »
|
Сорри, я неверно понял вопроса (прочитал очень бегло).
А зачем прогресс для получения размера файла в сети? Или прогресс нужен именно для процесса проверки подключения?
Тогда просто можно вывести замкнуты прогресс, я бы сделал так к примеру:
Код:
#include <Timers.au3>
Global $iShow_While_Progress = 1
Global $iProgress = 0
Global $hTimer = 0
_ProgressStart_Proc()
$iInetIsConnected = _InternetIsConnected("ya.ru")
_ProgressStop_Proc()
If $iInetIsConnected Then
MsgBox(64, "Internet Connection", "Интернет РАБОТАЕТ =)")
Exit
EndIf
$iAsk = MsgBox(20, "Internet Connection", _
"К сожалению, сейчас Интернет на вашем компьютере НЕ РАБОТАЕТ. Сообщить, если Интернет будет работать?")
If $iAsk = 6 Then
If $iShow_While_Progress Then _ProgressStart_Proc()
While 1
Sleep(5000)
If _InternetIsConnected("ya.ru") Then
_ProgressStop_Proc()
Beep(1000, 100)
MsgBox(64, "Internet Connection", "Интернет РАБОТАЕТ =) Время подключения: " & @HOUR & ":" & @MIN & ":" & @SEC)
Exit
EndIf
WEnd
EndIf
Func _ProgressStart_Proc()
ProgressOn("Internet Connection", "Проверка подключения", "Пожалуйста, подождите...", -1, -1, 16)
$hTimer = _Timer_SetTimer(0, 100, "_ProgressSet_Proc")
EndFunc
Func _ProgressStop_Proc()
If $hTimer <> 0 Then _Timer_KillTimer(0, $hTimer)
$hTimer = 0
ProgressSet(100)
Sleep(1000)
ProgressOff()
EndFunc
Func _ProgressSet_Proc($hWnd, $nMsg, $iIDTimer, $dwTime)
$iProgress += 1
If $iProgress >= 100 Then $iProgress = 0
ProgressSet($iProgress)
EndFunc
Func _InternetIsConnected($sPing_Host="google.com", $iPing_TimeOut=1000)
Local Const $INTERNET_CONNECTION_MODEM = 0x1
Local Const $INTERNET_CONNECTION_LAN = 0x2
Local Const $INTERNET_CONNECTION_PROXY = 0x4
Local Const $INTERNET_CONNECTION_OFFLINE = 0x20
Local Const $INTERNET_CONNECTION_CONFIGURED = 0x40
Local $stInetGetConnectedState = DllStructCreate("int")
DllCall("wininet.dll", "int", "InternetGetConnectedState", "ptr", DllStructGetPtr($stInetGetConnectedState), "dword", 0)
Local $s_stDataState = DllStructGetData($stInetGetConnectedState, 1)
Local $iRetState = 0
If BitAND($s_stDataState, $INTERNET_CONNECTION_MODEM) Or _
BitAND($s_stDataState, $INTERNET_CONNECTION_PROXY) Then $iRetState = 1
If BitAND($s_stDataState, $INTERNET_CONNECTION_OFFLINE) Then $iRetState = 0
If $iRetState = 0 And BitAND($s_stDataState, $INTERNET_CONNECTION_CONFIGURED) Then
Local $iPingCheck = Ping($sPing_Host, $iPing_TimeOut)
If $iPingCheck > 0 Then $iRetState = 1
EndIf
Return $iRetState
EndFunc