Что нового

проверка программы в трее и запуск её если программы нет в трее

ArchangeL

Новичок
Сообщения
17
Репутация
1
Версия AutoIt: v3.3.6.1

Описание:
Доброго дня.
Столкнулся с одной программой которая работает не очень надежно.
Бывает через определенный промежуток времени её выкидывает :wacko:
Программка запускается через файл exe и появляется в трее.
Когда программу выкидывает она пропадает из трея.

Возможно ли написать скрипт который проверял наличие программы в трее?
И если программы нет в трее запускал её снова.
Если программа есть в трее тогда производил тайм аут к примеру 5 мин. и снова
производил проверку наличия её в трее.

Да ещё если не сложно добавить её с запуском системы
(что бы после перезагрузки стартовало все автоматом)

И последний вопрос возможно ли с помощью скрипта разрешить
определенной программе принимать соединение на определенный порт только определенному IP адресу.

Спасибо за ваше время.
С наступающими вас праздниками!
Примечания:
 

SECTOR

Продвинутый
Сообщения
399
Репутация
59
Можно по подробнее...
Что за программа?
Обязательно проверять через трей? Или проще проверять наличие процесса?
 
Автор
A

ArchangeL

Новичок
Сообщения
17
Репутация
1
Можно проверять и наличием процесса
программа: repeater108.exe

Устанавливал как службу её но для меня это не подходит...
 

SECTOR

Продвинутый
Сообщения
399
Репутация
59
Вот посмотри на скрипт...

Код:
If Not @Compiled Then ;Если скрипт не скомпилирован, выводим ошибку и выходим
	MsgBox(16,"Ошибка!","Скомпилируйте скрипт!",15)
	Exit
EndIf

$sProcName = "repeater108.exe" ; Имя процесса
$AutoRunFile = @StartupCommonDir&"\Check_"&$sProcName&".lnk" ; Путь к ярлыку скрипта в папке Автозагрузка

If Not FileExists(@ScriptDir&"\"&$sProcName) Then ; Если скрипт не находится в папке с программой
	MsgBox(16,"Ошибка!","Сначала скопируйте '"&@ScriptName&"' в папку, в которой находится '"&$sProcName&"' !!!",15)
	Exit
EndIf

If Not FileExists($AutoRunFile) THen FileCreateShortcut(@ScriptFullPath,$AutoRunFile) ; Если ярлыка нет, создаем

While 1 ; Бесконечный цикл
	If Not ProcessExists($sProcName) Then Run(@ScriptDir&"\"&$sProcName) ; Если процесс не найден, то запускаем
	Sleep(5000)
WEnd
 
Автор
A

ArchangeL

Новичок
Сообщения
17
Репутация
1
или я что то сделал не правильно или это не работает :-\
скомпилировал скопировал на комп где установлен repeater108.exe в ту же папку с ним
и вот что получилось:

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

при запуске скрипта с запущенной программой repeater108.exe
он запускает снова программу repeater108.exe несколько раз с небольшим интервалом времени (видимо он не видит программу в процессе и запускает их снова и снова) :blink:
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
SECTOR
У Вас, вроде, здесь ошибка:
Код:
;не
While 1 ; Бесконечный цикл
    If ProcessExists($sProcName) Then Run(@ScriptDir&"\"&$sProcName) ; Если процесс не найден, то запускаем
    Sleep(5000)
WEnd
;а
While 1 ; Бесконечный цикл
    If Not ProcessExists($sProcName) Then Run(@ScriptDir&"\"&$sProcName) ; Если процесс не найден, то запускаем
    Sleep(5000)
WEnd
;...
 

SECTOR

Продвинутый
Сообщения
399
Репутация
59
Ого...
Я иногда забываю оператор НЕ поставить :smile:

Исправил скрипт...
 
Автор
A

ArchangeL

Новичок
Сообщения
17
Репутация
1
все проверил.
все работает спасибо ! :ok:
 
Верх