Страница 2 из 3
Re: Как проверить запущена ли программа?
Добавлено: Ср янв 27, 2010 1:08 pm
LizardOfOzz
Евгений писал(а):Уважаемые, может кто сможет подсказать как выявить и перезапустить неотвечающую программу. Спасибо.
вот, например.
Re: Как проверить запущена ли программа?
Добавлено: Ср янв 27, 2010 1:46 pm
LizardOfOzz
Лучше вы расскажите, как заполучить зависшее приложение. =) Я вот даже скриптик набросал, а как проверить - не знаю....
Код: Выделить всё
require "Win32API"
FindWindow = Win32API.new 'user32', 'FindWindow', 'PP', 'L'
IsHungAppWindow = Win32API.new 'user32', 'IsHungAppWindow', 'L', 'B'
header = 'Win32API from Ruby'
hwnd = FindWindow.call nil, header
hung = IsHungAppWindow.call hwnd
if hung == 0 then
puts 'not hung'
else
puts 'hung'
end
Re: Как проверить запущена ли программа?
Добавлено: Ср янв 27, 2010 2:41 pm
Евгений
А средствами прграммы Хstart не получится? Я к сожалению, не программист, но думаю придется выучить С++
Тем не менее спасибо...
Может автор нам поможет?..а?
Re: Как проверить запущена ли программа?
Добавлено: Ср янв 27, 2010 2:51 pm
LizardOfOzz
Сомневаюсь. Я ж написал скрипт, надо только проверить... Кста, если у вашей зависшей проги нет окна, то простого способа обнаружить зависание нет. В ссылке всё это описано.
Re: Как проверить запущена ли программа?
Добавлено: Ср янв 27, 2010 4:25 pm
Евгений
Окна есть...что делать с вашей программой я тоже не знаю. Может сделать полноценное приложение ,скомпилировать его в среде С++ с кнопочкой "пуск" и с выходом в файл , а потом из файла хStarterом выцепить. Но я это сейчас вряд ли смогу...для первой в жизни прграммы в С++ сложновато.
Re: Как проверить запущена ли программа?
Добавлено: Ср янв 27, 2010 5:00 pm
avmaksimov
Евгений писал(а):Окна есть...что делать с вашей программой я тоже не знаю. Может сделать полноценное приложение ,скомпилировать его в среде С++ с кнопочкой "пуск" и с выходом в файл , а потом из файла хStarterом выцепить. Но я это сейчас вряд ли смогу...для первой в жизни прграммы в С++ сложновато.
Гораздо проще и лучше сделать плагин в xStarterDesigner... И общество будет вам благодарно!
. Вот только не спрашивайте как - лучше на форуме поищите
.
Re: Как проверить запущена ли программа?
Добавлено: Ср янв 27, 2010 8:24 pm
Евгений
Я знал, знал, что как-то можно. Спасибо, добрый человек, поисчю.
Re: Как проверить запущена ли программа?
Добавлено: Чт янв 28, 2010 1:11 pm
LizardOfOzz
Плагин, это конечно да. Но его ещё надо уметь делать. А тем временем я проверил свой скрипт и обнаружил, что он работает. =)
Надо поставить
ruby и запускать этот скрипт такой командой:
Проверенный скрипт:
Код: Выделить всё
require "Win32API"
FindWindow = Win32API.new 'user32', 'FindWindow', 'PP', 'L'
IsHungAppWindow = Win32API.new 'user32', 'IsHungAppWindow', 'L', 'B'
header = 'Win32API from Ruby'
hwnd = FindWindow.call nil, header
if hwnd == 0 then
puts "window not found"
else
hung = IsHungAppWindow.call hwnd
if hung == 0 then
puts "window works fine"
else
puts "hung detected"
end
end
Re: Как проверить запущена ли программа?
Добавлено: Чт янв 28, 2010 1:25 pm
avmaksimov
А вдруг и мне плагин потом пригодится!?
)))
Re: Как проверить запущена ли программа?
Добавлено: Чт янв 28, 2010 1:37 pm
LizardOfOzz
avmaksimov писал(а):А вдруг и мне плагин потом пригодится!? :))))
Да я ж не против, мне просто лень ставить дельфю, когда можно обойтись текстовым редактором.
Re: Как проверить запущена ли программа?
Добавлено: Чт янв 28, 2010 1:46 pm
avmaksimov
LizardOfOzz писал(а):avmaksimov писал(а):А вдруг и мне плагин потом пригодится!?
)))
Да я ж не против, мне просто лень ставить дельфю, когда можно обойтись текстовым редактором.
Таки я надеялся, что Евгению не лень
... И насколько понял, можно без Делфей обойтись...
Re: Как проверить запущена ли программа?
Добавлено: Чт янв 28, 2010 3:33 pm
LizardOfOzz
avmaksimov писал(а):LizardOfOzz писал(а):avmaksimov писал(а):А вдруг и мне плагин потом пригодится!? :))))
Да я ж не против, мне просто лень ставить дельфю, когда можно обойтись текстовым редактором.
Таки я надеялся, что Евгению не лень :)... И насколько понял, можно без Делфей обойтись...
Так ты боишься, что он воспользуется моим решением и не станет делать плагин? Хм...
Re: Как проверить запущена ли программа?
Добавлено: Пт дек 10, 2010 6:02 pm
LexXxuS
avmaksimov писал(а):
Создаете задачу, которая запускается по событию "Процесс стартует/останавливается", указываете имя процесса или даже путь, если имя процесса может совпадать... Ставите условие на "остановку"... В действиях создаете одно только действие - запуск программы...
НЕ РАБОТАЕТ!!! (1.9.3.84)
чё делать?
(смысл задания в том чтобы подымать teamviever.exe и winvnc.exe, когда те в свою очередь падают без всяких предупреждений)
Re: Как проверить запущена ли программа?
Добавлено: Пт дек 10, 2010 7:05 pm
LizardOfOzz
Если они запущены как службы, попробуйте раз в 5 минут дёргать net start. Всяко надёжнее, чем отслеживать запуск процесса.
Re: Как проверить запущена ли программа?
Добавлено: Ср фев 16, 2011 10:30 am
FomakinSergey
Помогите пожалуйста.
Необходимо реализовать задачу следующего характера.
Каждые 30 сек (например) проверяем запущен ли процесс программы, если запущен, то далее проверяем запущено ли окно программы.
Пробую это сделать с помощью действий "Количество запущенных" (проверяем процесс) и "Найти окно" (проверяем окно). Все это запихиваю в IF/ELSE.
Процесс удачно ищется, но при проверке окна по заголовку окна он мне всегда выдает True!!! (Условие "If [FindWindows1.Sucess]=True then...").
Пробую отдельно отработать задание на "найти окно" - ничего не выходит ((.
Такая схема необходима, т.к. у меня крутиться программка, которая может неожиданно закрыть окно, но не закрыть процесс.