вот, например.Евгений писал(а):Уважаемые, может кто сможет подсказать как выявить и перезапустить неотвечающую программу. Спасибо.
Как проверить запущена ли программа?
- LizardOfOzz
- Гвардии пилот - Наставник
- Сообщения: 1165
- Зарегистрирован: Пт сен 08, 2006 8:59 pm
- Благодарил (а): 8 раз
- Поблагодарили: 38 раз
- Контактная информация:
Re: Как проверить запущена ли программа?
- LizardOfOzz
- Гвардии пилот - Наставник
- Сообщения: 1165
- Зарегистрирован: Пт сен 08, 2006 8:59 pm
- Благодарил (а): 8 раз
- Поблагодарили: 38 раз
- Контактная информация:
Re: Как проверить запущена ли программа?
Лучше вы расскажите, как заполучить зависшее приложение. =) Я вот даже скриптик набросал, а как проверить - не знаю....
Код: Выделить всё
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
-
- Пассажир
- Сообщения: 11
- Зарегистрирован: Ср янв 13, 2010 11:57 am
- Благодарил (а): 2 раза
- Поблагодарили: 1 раз
Re: Как проверить запущена ли программа?
А средствами прграммы Хstart не получится? Я к сожалению, не программист, но думаю придется выучить С++
Тем не менее спасибо...
Может автор нам поможет?..а?
Тем не менее спасибо...
Может автор нам поможет?..а?
- LizardOfOzz
- Гвардии пилот - Наставник
- Сообщения: 1165
- Зарегистрирован: Пт сен 08, 2006 8:59 pm
- Благодарил (а): 8 раз
- Поблагодарили: 38 раз
- Контактная информация:
Re: Как проверить запущена ли программа?
Сомневаюсь. Я ж написал скрипт, надо только проверить... Кста, если у вашей зависшей проги нет окна, то простого способа обнаружить зависание нет. В ссылке всё это описано.
-
- Пассажир
- Сообщения: 11
- Зарегистрирован: Ср янв 13, 2010 11:57 am
- Благодарил (а): 2 раза
- Поблагодарили: 1 раз
Re: Как проверить запущена ли программа?
Окна есть...что делать с вашей программой я тоже не знаю. Может сделать полноценное приложение ,скомпилировать его в среде С++ с кнопочкой "пуск" и с выходом в файл , а потом из файла хStarterом выцепить. Но я это сейчас вряд ли смогу...для первой в жизни прграммы в С++ сложновато.
-
- Ас
- Сообщения: 907
- Зарегистрирован: Чт май 08, 2008 2:48 pm
- Откуда: г. Москва, Россия
- Благодарил (а): 6 раз
- Поблагодарили: 16 раз
- Контактная информация:
Re: Как проверить запущена ли программа?
Гораздо проще и лучше сделать плагин в xStarterDesigner... И общество будет вам благодарно! . Вот только не спрашивайте как - лучше на форуме поищите .Евгений писал(а):Окна есть...что делать с вашей программой я тоже не знаю. Может сделать полноценное приложение ,скомпилировать его в среде С++ с кнопочкой "пуск" и с выходом в файл , а потом из файла хStarterом выцепить. Но я это сейчас вряд ли смогу...для первой в жизни прграммы в С++ сложновато.
- За это сообщение автора avmaksimov поблагодарил:
- Евгений (Ср янв 27, 2010 5:00 pm)
- Рейтинг: 33.33%
С уважением, Андрей.
-
- Пассажир
- Сообщения: 11
- Зарегистрирован: Ср янв 13, 2010 11:57 am
- Благодарил (а): 2 раза
- Поблагодарили: 1 раз
Re: Как проверить запущена ли программа?
Я знал, знал, что как-то можно. Спасибо, добрый человек, поисчю.
- LizardOfOzz
- Гвардии пилот - Наставник
- Сообщения: 1165
- Зарегистрирован: Пт сен 08, 2006 8:59 pm
- Благодарил (а): 8 раз
- Поблагодарили: 38 раз
- Контактная информация:
Re: Как проверить запущена ли программа?
Плагин, это конечно да. Но его ещё надо уметь делать. А тем временем я проверил свой скрипт и обнаружил, что он работает. =)
Надо поставить ruby и запускать этот скрипт такой командой:
Проверенный скрипт:
Надо поставить ruby и запускать этот скрипт такой командой:
Код: Выделить всё
ruby file.rb
Код: Выделить всё
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
-
- Ас
- Сообщения: 907
- Зарегистрирован: Чт май 08, 2008 2:48 pm
- Откуда: г. Москва, Россия
- Благодарил (а): 6 раз
- Поблагодарили: 16 раз
- Контактная информация:
Re: Как проверить запущена ли программа?
А вдруг и мне плагин потом пригодится!? )))
С уважением, Андрей.
- LizardOfOzz
- Гвардии пилот - Наставник
- Сообщения: 1165
- Зарегистрирован: Пт сен 08, 2006 8:59 pm
- Благодарил (а): 8 раз
- Поблагодарили: 38 раз
- Контактная информация:
Re: Как проверить запущена ли программа?
Да я ж не против, мне просто лень ставить дельфю, когда можно обойтись текстовым редактором.avmaksimov писал(а):А вдруг и мне плагин потом пригодится!? :))))
-
- Ас
- Сообщения: 907
- Зарегистрирован: Чт май 08, 2008 2:48 pm
- Откуда: г. Москва, Россия
- Благодарил (а): 6 раз
- Поблагодарили: 16 раз
- Контактная информация:
Re: Как проверить запущена ли программа?
Таки я надеялся, что Евгению не лень ... И насколько понял, можно без Делфей обойтись...LizardOfOzz писал(а):Да я ж не против, мне просто лень ставить дельфю, когда можно обойтись текстовым редактором.avmaksimov писал(а):А вдруг и мне плагин потом пригодится!? )))
С уважением, Андрей.
- LizardOfOzz
- Гвардии пилот - Наставник
- Сообщения: 1165
- Зарегистрирован: Пт сен 08, 2006 8:59 pm
- Благодарил (а): 8 раз
- Поблагодарили: 38 раз
- Контактная информация:
Re: Как проверить запущена ли программа?
Так ты боишься, что он воспользуется моим решением и не станет делать плагин? Хм...avmaksimov писал(а):Таки я надеялся, что Евгению не лень :)... И насколько понял, можно без Делфей обойтись...LizardOfOzz писал(а):Да я ж не против, мне просто лень ставить дельфю, когда можно обойтись текстовым редактором.avmaksimov писал(а):А вдруг и мне плагин потом пригодится!? :))))
-
- Пассажир
- Сообщения: 2
- Зарегистрирован: Пт дек 03, 2010 1:03 pm
- Благодарил (а): 0
- Поблагодарили: 1 раз
Re: Как проверить запущена ли программа?
НЕ РАБОТАЕТ!!! (1.9.3.84)avmaksimov писал(а): Создаете задачу, которая запускается по событию "Процесс стартует/останавливается", указываете имя процесса или даже путь, если имя процесса может совпадать... Ставите условие на "остановку"... В действиях создаете одно только действие - запуск программы...
чё делать?
(смысл задания в том чтобы подымать teamviever.exe и winvnc.exe, когда те в свою очередь падают без всяких предупреждений)
- LizardOfOzz
- Гвардии пилот - Наставник
- Сообщения: 1165
- Зарегистрирован: Пт сен 08, 2006 8:59 pm
- Благодарил (а): 8 раз
- Поблагодарили: 38 раз
- Контактная информация:
Re: Как проверить запущена ли программа?
Если они запущены как службы, попробуйте раз в 5 минут дёргать net start. Всяко надёжнее, чем отслеживать запуск процесса.
-
- Пассажир
- Сообщения: 13
- Зарегистрирован: Ср фев 09, 2011 9:37 am
- Благодарил (а): 0
- Поблагодарили: 0
Re: Как проверить запущена ли программа?
Помогите пожалуйста.
Необходимо реализовать задачу следующего характера.
Каждые 30 сек (например) проверяем запущен ли процесс программы, если запущен, то далее проверяем запущено ли окно программы.
Пробую это сделать с помощью действий "Количество запущенных" (проверяем процесс) и "Найти окно" (проверяем окно). Все это запихиваю в IF/ELSE.
Процесс удачно ищется, но при проверке окна по заголовку окна он мне всегда выдает True!!! (Условие "If [FindWindows1.Sucess]=True then...").
Пробую отдельно отработать задание на "найти окно" - ничего не выходит ((.
Такая схема необходима, т.к. у меня крутиться программка, которая может неожиданно закрыть окно, но не закрыть процесс.
Необходимо реализовать задачу следующего характера.
Каждые 30 сек (например) проверяем запущен ли процесс программы, если запущен, то далее проверяем запущено ли окно программы.
Пробую это сделать с помощью действий "Количество запущенных" (проверяем процесс) и "Найти окно" (проверяем окно). Все это запихиваю в IF/ELSE.
Процесс удачно ищется, но при проверке окна по заголовку окна он мне всегда выдает True!!! (Условие "If [FindWindows1.Sucess]=True then...").
Пробую отдельно отработать задание на "найти окно" - ничего не выходит ((.
Такая схема необходима, т.к. у меня крутиться программка, которая может неожиданно закрыть окно, но не закрыть процесс.