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

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » Создание "Прогресса" на время работы "InetGetSize"

Ответить
Настройки темы
Создание "Прогресса" на время работы "InetGetSize"

Аватара для sashadeg

Старожил


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

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


Это программа проверяющая наличие интернета на компьютере... Для функции "InetGetSize" хотелось бы "прогресс" установить, пока она выполняется... Это возможно? А как?
Код: Выделить весь код
$size = InetGetSize("http://ya.ru/logo.png")
If $size = 0 Then 
	$1=MsgBox(20, "Yes or No Inet ?","К сожалению, сейчас Интернет на вашем компьютере НЕ РАБОТАЕТ. Сообщить, если Интернет будет работать?")
Else 
	MsgBox(64, "Yes or No Inet ?","Интернет РАБОТАЕТ =)")
	Exit
EndIf
If $1 = 6 Then
	While 1
		sleep(5000)
		$size1 = InetGetSize("http://www.ya.ru")
		If $size1 = 0 Then
		Else 
			Beep(1000,100)
			MsgBox(64, "Yes or No Inet ?","Интернет РАБОТАЕТ =) Время подключения: " & @hour &":"& @min &":"&@sec)
			Exit
			EndIf
		WEnd
			EndIf

Отправлено: 17:43, 18-06-2009

 

Аватара для beve

Старожил


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

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


Цитата sashadeg:
Это программа проверяющая наличие интернета на компьютере... »
Если просто нужно проверить наличие инета, то можно попроще:
Код: Выделить весь код
#include <Inet.au3>
If _GetIP()<>-1 Then
    MsgBox(0, "Сообщение", "Все в порядке, интрернет работает",10)
    Exit
Else
    $1=MsgBox(20, "Yes or No Inet ?","К сожалению, сейчас Интернет на вашем компьютере НЕ РАБОТАЕТ. Сообщить, если Интернет будет работать?")
EndIf
;
If $1==6 Then
While 1
    sleep(5000)
    If _GetIP()<>-1 then
    Beep(1000,100)
    MsgBox(64, "Yes or No Inet ?","Интернет РАБОТАЕТ =) Время подключения: " & @hour &":"& @min &":"&@sec,10)
    Exit
    EndIf
WEnd
EndIf

-------
Не в кількості знань полягає освіта, а в повному розумінні і вмілому використанні того, що знаєш.

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

Отправлено: 22:28, 18-06-2009 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для 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


Аватара для sashadeg

Старожил


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

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


Цитата Creat0R:
А зачем прогресс для получения размера файла в сети? »
Просто если подключения нету, то этот файл в сети (типа "http://ya.ru/") возвратит значение 0 - то есть инета нет... Канешна через }|{0пу, но по другому я не мог догадаться, как проверить наличие интернета

P.S. Твоя программа пишет что инета нету, а в действительности он есть он есть
Программа beve работает нормально...

Цитата beve:
_GetIP()<>-1 »
а это что такое? и как это работает?

-------
Ну вы ребята даёте...


Отправлено: 15:22, 19-06-2009 | #4


Аватара для Creat0R

Must AutoIt


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

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


Цитата sashadeg:
Программа beve работает нормально »
Ну так используйте оттуда функцию проверки подключения (хотя странно что не работает, какое соеденение?), тема ведь не про это, а про создание прогресса

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

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

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

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

Отправлено: 15:37, 19-06-2009 | #5


Аватара для beve

Старожил


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

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


Цитата:
а это что такое? и как это работает?
Просто в справке к Autoit в поиске набери: _GetIP и прочитай объяснение этой функции, которая возвращает ip адресс, а если адресс получить не удалось, значит возвращаемое значение будет -1 и соответственно можна сделать вывод, что инет отсуствует на данное время. А _GetIP()<>-1 другими словами, если результат _GetIP() не равно -1...

Добавлено:
Цитата Creat0R:
Тогда просто можно вывести замкнуты прогресс, я бы сделал так к примеру: »
У меня твой пример постоянно показывает, что интернет работает, даже когда я отключил (Интернет Adsl, модем подключен через сетевую...)

-------
Не в кількості знань полягає освіта, а в повному розумінні і вмілому використанні того, що знаєш.


Последний раз редактировалось beve, 19-06-2009 в 16:13.

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

Отправлено: 15:54, 19-06-2009 | #6


Аватара для sashadeg

Старожил


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

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


Creat0R, я про прогресс так и ничего и не понял...=( Можно сделать чтобы он бесконечно бегал (как у тебя, когда ждет "появления" инета) пока идет работа InetGetSize ? Ну или до появления msgbox'. без разницы... И если можно, то объясните пожалуйста (;в коментарии) что к чему. А то я мало что понимаю в устройстве и работе этого "прогресса"

Цитата beve:
Просто в справке к Autoit в поиске набери »
в русской справке вапще гаМно а не поиск =( А в ENG я лось Я же не Creat0R... (вчера его пост видел на каком то английском форуме, полностью на английском языке 0_о )

-------
Ну вы ребята даёте...


Отправлено: 16:04, 19-06-2009 | #7


Аватара для Creat0R

Must AutoIt


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

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


Цитата sashadeg:
Можно сделать чтобы он бесконечно бегал (как у тебя, когда ждет "появления" инета) пока идет работа InetGetSize ? »
Можно. Поменять _InternetIsConnected на InetGetSize думаю не сложно?

Цитата sashadeg:
я мало что понимаю в устройстве и работе этого "прогресса" »
Вот для этого (и не только) начните в первую очередь, учить английский язык, а во-вторую, англ. справку к AutoIT.
Я когда начинал учить аутоит, паралельно учил англ. язык, стал общаться на офф. форуме.. а иначе никак.

Цитата sashadeg:
вчера его пост видел на каком то английском форуме, полностью на английском языке 0_о »
У меня там вообще то около 2500 сообщении, полностью на Английском языке

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

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

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:31.

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

Отправлено: 16:29, 19-06-2009 | #8


Аватара для sashadeg

Старожил


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

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


Цитата Creat0R:
Поменять _InternetIsConnected на InetGetSize думаю не сложно »
хмм... ну у тебя ведь он для того чтобы работал пока ждёт подключения...
Что то щас пробЫвал из твоего вытащить... постоянно ошибка вылазит... ссылается на _ProgressStop_Proc()...
Я бедный RUSский AutoХудоIt парень Помогите пожалуйста...

-------
Ну вы ребята даёте...


Отправлено: 16:54, 19-06-2009 | #9


Аватара для Creat0R

Must AutoIt


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

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


Цитата sashadeg:
у тебя ведь он для того чтобы работал пока ждёт подключения... »
Мда...

Код: Выделить весь код
#include <Timers.au3>

Global $iShow_While_Progress = 1
Global $iProgress = 0
Global $hTimer = 0

_ProgressStart_Proc()

$iInetIsConnected = InetGetSize("http://ya.ru/logo.png")

_ProgressStop_Proc()

If $iInetIsConnected > 0 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 InetGetSize("http://ya.ru/logo.png") > 0 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
Цитата beve:
У меня твой пример постоянно показывает, что интернет работает, даже когда я отключил (Интернет Adsl, модем подключен через сетевую...) »
Интересно... А такая функция работает:

Код: Выделить весь код
Func _InetIsConnected($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_MODEM_BUSY     = 0x8
    Local Const $INTERNET_RAS_INSTALLED             = 0x10
    Local Const $INTERNET_CONNECTION_OFFLINE        = 0x20
    Local Const $INTERNET_CONNECTION_CONFIGURED     = 0x40

    ;For 3.2.10.0 the next line should be used
    ;Local $aRetConnectedState = DllCall("WinInet.dll", "int", "InternetGetConnectedState", "int*", 0, "int", 0)
    Local $aRetConnectedState = DllCall("WinInet.dll", "int", "InternetGetConnectedState", "int_ptr", 0, "int", 0)
    Local $iRetState = 0

    If UBound($aRetConnectedState) > 0 And $aRetConnectedState[0] Then
        If BitAND($aRetConnectedState[1], $INTERNET_CONNECTION_MODEM) Or _
            BitAND($aRetConnectedState[1], $INTERNET_CONNECTION_LAN) Or _
            BitAND($aRetConnectedState[1], $INTERNET_CONNECTION_PROXY) Or _
            BitAND($aRetConnectedState[1], $INTERNET_RAS_INSTALLED) Then $iRetState = 1

        If BitAND($aRetConnectedState[1], $INTERNET_CONNECTION_OFFLINE) Then $iRetState = 0
    Else
        $iRetState = 0
    Endif

    If $iRetState = 0 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

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

Отправлено: 23:37, 19-06-2009 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » Создание "Прогресса" на время работы "InetGetSize"

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Интерфейс - [решено] Как удалить папку "Моя музыка","Мои Картинки", "Мое видео"? verdix Microsoft Windows 2000/XP 3 03-10-2009 23:46
Debian/Ubuntu - [решено] Пропали кнопки "свернуть","закрыть","во весь екран" в папках Alex.sys Общий по Linux 5 02-04-2009 11:13
[решено] Как удалить два "неудаляемых" вируса, их "назначение", и принцип работы Drongo Хочу все знать 20 11-05-2008 01:14
[решено] Пропали пункты "Завершение работы" и "Перезагрузка" Angry Demon Microsoft Windows NT/2000/2003 5 30-03-2007 13:01
Запретить/удалить пункт "Programs" ("Программы") из меню кнопки "Start" ("Пуск") submaster Microsoft Windows NT/2000/2003 5 13-09-2006 12:29




 
Переход