|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] Автоматизация старт/стоп при неудачном ping-овании |
|
|
[решено] Автоматизация старт/стоп при неудачном ping-овании
|
Пользователь Сообщения: 101 |
Профиль | Отправить PM | Цитировать Есть ADSL модем. Входящая скорость 2мб/сек. К модему подключены 2 машины. Программно на обоих машинах скорость ограничевается по 1мб/сек. Как реализовать следующее:
1. Запускается скрипт через автозагрузку и все время висит в трее; 2. Постоянно опрашивает вторую машину есть ли она в сети или нет, через команду ping; 3. Если ЕСТЬ в сети машины - проверяем, запущена ли служба, если нет - запускаем; 4. Если НЕТ в сети машина - проверяем, остановлена ли служба, если запущена - останавливаем. Файервол не стоит ни на одной машине. Помогите пожалуйста! Я уже весь интернет перерыл, ничего такого не нашел, в Autoit! не очень силен (автоматизировал только автоустановку приложений), но если подскажите может сам сделаю. Зараннее огромное спасибо! |
|
Отправлено: 14:21, 02-06-2010 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать nyevgen, что изменилось за полдня по сравнению с этим?
|
Отправлено: 16:55, 02-06-2010 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 812
|
Профиль | Отправить PM | Цитировать nyevgen,
Попробуйте так, у меня работает. Можно поменять на #NoTrayIcon Opt("TrayMenuMode", 1) Global $i = 0 Global $sRegRun = "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run" ;проверка и запись себя в автозагрузку If RegRead($sRegRun, @ScriptName) = "" Or RegRead($sRegRun, @ScriptName) <> @ScriptFullPath Then RegWrite($sRegRun, @ScriptName, "REG_SZ", @ScriptFullPath) EndIf Global $exititem = TrayCreateItem("Выход") TrayCreateItem("") TraySetState() While 1 $msg = TrayGetMsg() Select Case $msg = $exititem Exit EndSelect $i += 1 If $i = 1000 Then ;прошло 10 секунд If @IPAddress2 = "0.0.0.0" Then ;нет второй машины в сети. If ProcessExists("Ваш процесс.exe") Then ProcessClose("Ваш процесс.exe");если есть процесс, то закрываем его. Else ;есть вторая машина в сети If Not ProcessExists("Ваш процесс.exe") Then Run("Путь к Вашему\Процессу\Ваш процесс.exe");если нет процесса, запускаем его. ;что у Вас за процесс, я не знаю, может он по другому запускается. EndIf $i = 0 ;обнуляем счетчик EndIf Sleep(10) WEnd Цитата Iska:
|
|
Последний раз редактировалось madmasles, 02-06-2010 в 17:45. Отправлено: 17:33, 02-06-2010 | #3 |
Пользователь Сообщения: 101
|
Профиль | Отправить PM | Цитировать Цитата Iska:
Цитата madmasles:
|
||
------- Отправлено: 10:34, 03-06-2010 | #4 |
Ветеран Сообщения: 812
|
Профиль | Отправить PM | Цитировать nyevgen,
У меня так службы включаются - выключаются: ; 1-й вариант: Run(@ComSpec & " /C sc start служба", "", @SW_HIDE) Run(@ComSpec & " /C sc stop служба", "", @SW_HIDE) ; 2-й вариант: ; если название службы из двух слов (с пробелом), то надо так ""Ваша служба"" RunWait(@ComSpec & " /C net start ""Ваша служба""", "", @SW_HIDE) RunWait(@ComSpec & " /C net stop ""Ваша служба""", "", @SW_HIDE) |
|
Отправлено: 12:41, 03-06-2010 | #5 |
Пользователь Сообщения: 101
|
Профиль | Отправить PM | Цитировать |
------- Отправлено: 14:40, 03-06-2010 | #6 |
Пользователь Сообщения: 101
|
Профиль | Отправить PM | Цитировать Можно еще вопросик. Контекстное меню сделать-сделал. Как сделать пункт "Ввод IP адреса" пингуемой машины так, чтобы выскакивало окошко с кнопками Ок и Отмена для ввода ip адреса?
Зараннее спасибо! |
------- Отправлено: 18:34, 03-06-2010 | #7 |
Ветеран Сообщения: 553
|
Профиль | Отправить PM | Цитировать #include <ButtonConstants.au3> #include <GUIConstantsEx.au3> #include <GuiIPAddress.au3> #include <WindowsConstants.au3> $nForm = GUICreate("", 207, 102, 731, 366) $hIPAddress = _GUICtrlIpAddress_Create($nForm, 32, 8, 130, 21) ;~ _GUICtrlIpAddress_Set($hIPAddress, "0.0.0.0") $Button1 = GUICtrlCreateButton("OK", 120, 56, 75, 25, 0) $Button2 = GUICtrlCreateButton("Cancel", 32, 56, 75, 25, 0) GUISetState(@SW_SHOW) While 1 $nMsg = GUIGetMsg() Switch $nMsg Case $GUI_EVENT_CLOSE, $Button2 Exit Case $Button1 MsgBox (4160, "Information", "IP Address: " & _GUICtrlIpAddress_Get($hIPAddress)) Exit EndSwitch WEnd |
Отправлено: 18:42, 03-06-2010 | #8 |
Пользователь Сообщения: 101
|
Профиль | Отправить PM | Цитировать Подскажите, что я делаю не так??? Ну не силен я в этом. Нужно чтоб в контекстном меню был пункт "Смена IP" - это я сделал. А как сделать чтоб выскакивало "это самое окно" и потом вбивался новый IP в пинговании???
|
Отправлено: 19:16, 03-06-2010 | #9 |
Ветеран Сообщения: 553
|
Профиль | Отправить PM | Цитировать #include <GUIConstantsEx.au3> #include <Constants.au3> #include <GuiIPAddress.au3> #include <WindowsConstants.au3> Global $nForm, $hIPAddress, $sLastIP Global $START_IP = "127.0.0.1" Opt("TrayMenuMode", 1) $hIp = TrayCreateItem("IP Ping") TrayCreateItem("") $hExit = TrayCreateItem("Exit") TraySetState() $start = 0 While 1 $msg = TrayGetMsg() Switch $msg Case $hIp TrayItemSetState($hIp, $TRAY_UNCHECKED + $TRAY_DISABLE) TrayItemSetState($hExit, $TRAY_DISABLE) $sIP = _GuiCreate() If Not (@error) Then MsgBox(0, "", 'IP - ' & $sIP) TrayItemSetState($hIp, $TRAY_ENABLE) TrayItemSetState($hExit, $TRAY_ENABLE) Case $hExit Exit EndSwitch WEnd Func _GuiCreate() $nForm = GUICreate("", 223, 102, -1, -1, BitOR($WS_SYSMENU, $WS_CAPTION, $WS_POPUP, $WS_POPUPWINDOW, $WS_BORDER, $WS_CLIPSIBLINGS), BitOR($WS_EX_TOPMOST, $WS_EX_WINDOWEDGE)) $hIPAddress = _GUICtrlIpAddress_Create($nForm, 24, 16, 162, 21) If Not $sLastIP Then _GUICtrlIpAddress_Set($hIPAddress, $START_IP) Else _GUICtrlIpAddress_Set($hIPAddress, $sLastIP) EndIf $Button1 = GUICtrlCreateButton("Ok", 144, 64, 43, 25) $Button2 = GUICtrlCreateButton("Cancel", 64, 64, 75, 25) GUISetState(@SW_SHOW, $nForm) While 1 $nMsg = GUIGetMsg() Switch $nMsg Case $GUI_EVENT_CLOSE, $Button2 GUIDelete($nForm) Return SetError(1, 0, 0) Case $Button1 $sLastIP = _GUICtrlIpAddress_Get($hIPAddress) GUIDelete($nForm) Return $sLastIP EndSwitch WEnd EndFunc ;==>_GuiCreate |
Отправлено: 23:36, 03-06-2010 | #10 |
|
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Почта - стоп спам | rufat_4 | Программное обеспечение Windows | 10 | 15-11-2014 16:00 | |
БП и ИБП - комп не стартует при повторном нажатии кнопки старт | naka | Прочее железо | 5 | 19-07-2009 09:16 | |
Разное - Автоматический старт установки Office 2007 при загрузке системы | SimPbl4 | Microsoft Windows Vista | 1 | 01-03-2008 21:23 | |
Автоматизация кодирования при помощи Avisynth | Igor_I | Видео и аудио: обработка и кодирование | 1 | 14-04-2007 21:23 | |
Старт MSTSC при входе в систему . | Jhakal | Microsoft Windows 2000/XP | 3 | 03-11-2006 03:54 |
|