Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Аватара для Creat0R

Must AutoIt


Сообщения: 3054
Благодарности: 1009

Профиль | Сайт | Отправить PM | Цитировать


Цитата 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

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

http://creator-lab.ucoz.ru/Images/Icons/autoit_icon.png Русское сообщество AutoIt | http://creator-lab.ucoz.ru/Images/Ic...eator_icon.png CreatoR's Lab | http://creator-lab.ucoz.ru/Images/Icons/oac_icon.png Opera AC Community


Последний раз редактировалось Creat0R, 19-06-2009 в 23:38.

Это сообщение посчитали полезным следующие участники:

Отправлено: 00:01, 19-06-2009 | #3