Автор Тема: проверка программы в трее и запуск её если программы нет в трее  (Прочитано 8469 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн ArchangeL [?]

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

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

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

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

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

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

Русское сообщество AutoIt


Оффлайн SECTOR [?]

  • Продвинутый
  • ***
  • Сообщений: 389
  • Репутация: 56
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Можно по подробнее...
Что за программа?
Обязательно проверять через трей? Или проще проверять наличие процесса?

Оффлайн ArchangeL [?]

  • Новичок
  • *
  • Сообщений: 17

  • Автор темы
  • Репутация: 1
    • Награды
Можно проверять и наличием процесса
программа: repeater108.exe

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

Оффлайн SECTOR [?]

  • Продвинутый
  • ***
  • Сообщений: 389
  • Репутация: 56
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Вот посмотри на скрипт...

Код: AutoIt [Выделить]
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

« Последнее редактирование: Декабрь 21, 2010, 19:23:07 от SECTOR »

Русское сообщество AutoIt


Оффлайн ArchangeL [?]

  • Новичок
  • *
  • Сообщений: 17

  • Автор темы
  • Репутация: 1
    • Награды
Завтра проверю отпишусь.  :)

Оффлайн ArchangeL [?]

  • Новичок
  • *
  • Сообщений: 17

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

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

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


Оффлайн madmasles [?]

  • Глобальный модератор
  • *
  • Сообщений: 7790
  • Репутация: 2314
  • Пол: Мужской
  • Награды За модерирование форума
    • Награды
  • Версия AutoIt: 3.3.x.x
SECTOR
У Вас, вроде, здесь ошибка:
Код: AutoIt [Выделить]
;не
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 [?]

  • Продвинутый
  • ***
  • Сообщений: 389
  • Репутация: 56
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Ого...
Я иногда забываю оператор НЕ поставить :)

Исправил скрипт...
« Последнее редактирование: Декабрь 21, 2010, 19:24:48 от SECTOR »

Русское сообщество AutoIt


Оффлайн ArchangeL [?]

  • Новичок
  • *
  • Сообщений: 17

  • Автор темы
  • Репутация: 1
    • Награды
все проверил.
все работает спасибо !  :ok:

Русское сообщество AutoIt


 

Похожие темы

  Тема / Автор Ответов Последний ответ
16 Ответов
7821 Просмотров
Последний ответ Май 02, 2010, 12:13:37
от madmasles
2 Ответов
3476 Просмотров
Последний ответ Май 23, 2010, 15:32:20
от beve
25 Ответов
3519 Просмотров
Последний ответ Апрель 05, 2017, 00:02:25
от InnI
5 Ответов
1543 Просмотров
Последний ответ Август 23, 2015, 13:45:04
от bobuni
2 Ответов
439 Просмотров
Последний ответ Сентябрь 22, 2016, 14:45:53
от ВиталийВВ
5 Ответов
1180 Просмотров
Последний ответ Ноябрь 18, 2016, 18:35:38
от badhabit
3 Ответов
565 Просмотров
Последний ответ Декабрь 28, 2016, 15:09:57
от InnI
2 Ответов
263 Просмотров
Последний ответ Июль 27, 2017, 17:20:12
от Dk
0 Ответов
198 Просмотров
Последний ответ Октябрь 18, 2017, 10:47:36
от garylucky
5 Ответов
354 Просмотров
Последний ответ Ноябрь 06, 2017, 22:53:23
от Garrett