|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » Создание "Прогресса" на время работы "InetGetSize" |
|
|
Создание "Прогресса" на время работы "InetGetSize"
|
Старожил Сообщения: 379 |
Профиль | Отправить 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 |
Старожил Сообщения: 307
|
Профиль | Отправить 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 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать Цитата sashadeg:
А зачем прогресс для получения размера файла в сети? Или прогресс нужен именно для процесса проверки подключения? Тогда просто можно вывести замкнуты прогресс, я бы сделал так к примеру: #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 |
|
------- Последний раз редактировалось Creat0R, 19-06-2009 в 23:38. Отправлено: 00:01, 19-06-2009 | #3 |
Старожил Сообщения: 379
|
Профиль | Отправить PM | Цитировать Цитата Creat0R:
P.S. Твоя программа пишет что инета нету, а в действительности он есть он есть Программа beve работает нормально... Цитата beve:
|
||
------- Отправлено: 15:22, 19-06-2009 | #4 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать Цитата sashadeg:
|
||
------- Отправлено: 15:37, 19-06-2009 | #5 |
Старожил Сообщения: 307
|
Профиль | Отправить PM | Цитировать Цитата:
Добавлено: Цитата Creat0R:
|
||
------- Последний раз редактировалось beve, 19-06-2009 в 16:13. Отправлено: 15:54, 19-06-2009 | #6 |
Старожил Сообщения: 379
|
Профиль | Отправить PM | Цитировать Creat0R, я про прогресс так и ничего и не понял...=( Можно сделать чтобы он бесконечно бегал (как у тебя, когда ждет "появления" инета) пока идет работа InetGetSize ? Ну или до появления msgbox'. без разницы... И если можно, то объясните пожалуйста (;в коментарии) что к чему. А то я мало что понимаю в устройстве и работе этого "прогресса"
Цитата beve:
|
|
------- Отправлено: 16:04, 19-06-2009 | #7 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать Цитата sashadeg:
Цитата sashadeg:
Я когда начинал учить аутоит, паралельно учил англ. язык, стал общаться на офф. форуме.. а иначе никак. Цитата sashadeg:
|
|||
------- Последний раз редактировалось Creat0R, 19-06-2009 в 23:31. Отправлено: 16:29, 19-06-2009 | #8 |
Старожил Сообщения: 379
|
Профиль | Отправить PM | Цитировать Цитата Creat0R:
Что то щас пробЫвал из твоего вытащить... постоянно ошибка вылазит... ссылается на _ProgressStop_Proc()... Я бедный RUSский AutoХудоIt парень Помогите пожалуйста... |
|
------- Отправлено: 16:54, 19-06-2009 | #9 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить 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:
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 |
||
------- Отправлено: 23:37, 19-06-2009 | #10 |
|
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Интерфейс - [решено] Как удалить папку "Моя музыка","Мои Картинки", "Мое видео"? | 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 |
|