Как проверить запущена ли программа?
- Alex
- Ас
- Сообщения: 2833
- Зарегистрирован: Вт апр 05, 2005 3:28 pm
- Откуда: Kaliningrad City
- Благодарил (а): 2 раза
- Поблагодарили: 91 раз
- Контактная информация:
Re: Как проверить запущена ли программа?
Может быть окно не закрывается, а скрывается, продолжает висеть в памяти?
-
- Пассажир
- Сообщения: 13
- Зарегистрирован: Ср фев 09, 2011 9:37 am
- Благодарил (а): 0
- Поблагодарили: 0
Re: Как проверить запущена ли программа?
Нашел то место...
При отработки "Найти окно" с включенной галкой на "Не показывать скрытые окна в списке заголовков окон" окно находится, если оно не свернуто.
Если эту галочку убрать, то окно находиться, даже если оно скрыто,... но!!! Но оно будет находиться и тогда если окна нет, но есть процесс!!!
Как проверить что есть процесс, но нет окна???
При отработки "Найти окно" с включенной галкой на "Не показывать скрытые окна в списке заголовков окон" окно находится, если оно не свернуто.
Если эту галочку убрать, то окно находиться, даже если оно скрыто,... но!!! Но оно будет находиться и тогда если окна нет, но есть процесс!!!
Как проверить что есть процесс, но нет окна???
- Alex
- Ас
- Сообщения: 2833
- Зарегистрирован: Вт апр 05, 2005 3:28 pm
- Откуда: Kaliningrad City
- Благодарил (а): 2 раза
- Поблагодарили: 91 раз
- Контактная информация:
Re: Как проверить запущена ли программа?
Вот этой программой можно проверить уничтожено окно или болтается еще в невидимом состоянии:
http://www.xstarter.com/rus/download/WINSPECT.zip
У меня получается такое сделать, если делаю для формы Close, но не добавляю Action:=caFree; в OnClose.
http://www.xstarter.com/rus/download/WINSPECT.zip
У меня получается такое сделать, если делаю для формы Close, но не добавляю Action:=caFree; в OnClose.
-
- Пассажир
- Сообщения: 13
- Зарегистрирован: Ср фев 09, 2011 9:37 am
- Благодарил (а): 0
- Поблагодарили: 0
Re: Как проверить запущена ли программа?
Я сейчас протестить не смогу, т.к. это исключительный случай (происходит ночью, хз из за чего ))).
А можно как нибудь отловить состояние окна?
А можно как нибудь отловить состояние окна?
-
- Пассажир
- Сообщения: 13
- Зарегистрирован: Ср фев 09, 2011 9:37 am
- Благодарил (а): 0
- Поблагодарили: 0
Re: Как проверить запущена ли программа?
Вроде бы нашел решение проблемы.
Использую плагин WindowsScaner. После действия "Найти окно" в действие "WindowsScaner" пуляю Class и Caption окна и проверяю окно на WindowsVisible.
Использую плагин WindowsScaner. После действия "Найти окно" в действие "WindowsScaner" пуляю Class и Caption окна и проверяю окно на WindowsVisible.
-
- Пассажир
- Сообщения: 13
- Зарегистрирован: Ср фев 09, 2011 9:37 am
- Благодарил (а): 0
- Поблагодарили: 0
Re: Как проверить запущена ли программа?
Я ошибся ((( При свернутом окне WindowsVisible тоже возвращает False (
Можете что нибудь посоветовать в этом случае?
Можете что нибудь посоветовать в этом случае?
-
- Пассажир
- Сообщения: 13
- Зарегистрирован: Ср фев 09, 2011 9:37 am
- Благодарил (а): 0
- Поблагодарили: 0
Re: Как проверить запущена ли программа?
Видимо такую ситуацию не получиться отследить, т.к. форма приложение на самом деле существует. Единственное, хотелось бы как нибудь отлавливать статус окна (свернутое, развернутое, ...). Можно ли это реализовать?
А в общем программа очень понравилась! Большущее спасибо автору! До этого использовали nncron, который постоянно подвисал.
А в общем программа очень понравилась! Большущее спасибо автору! До этого использовали nncron, который постоянно подвисал.
- Alex
- Ас
- Сообщения: 2833
- Зарегистрирован: Вт апр 05, 2005 3:28 pm
- Откуда: Kaliningrad City
- Благодарил (а): 2 раза
- Поблагодарили: 91 раз
- Контактная информация:
Re: Как проверить запущена ли программа?
Такое не очень просто реализовать. Дело в том, что если окно минимизировано, то у него есть статус IsMinimized. Если окно не минимизировано, но не видимо, то у него нет этого статуса, можно обратиться к IsVisible. Но насколько я понимаю, Вам это не подходит, потому что окно может быть закрыто другим приложением и будет иметь IsVisible=False.
-
- Пассажир
- Сообщения: 7
- Зарегистрирован: Пт дек 30, 2011 11:29 am
- Благодарил (а): 0
- Поблагодарили: 0
Re: Как проверить запущена ли программа?
Здравствуйте.
Всех с наступающим новым годом!
Не могли бы Вы мне помочь? У меня такая проблемка: мне наоборот нужно проверить запущена ли программа, если да - выдать сообщение пользователю,чтоб он ее закрыл. По истечении некоторого времени опять проверить запущена ли программа и если уже нет - перейти к следующим заданиям. Все вроде сделал правильно, но когда while проверил что процесс >0 и выдал сообщение пользователю, пользователь закрыл эту прогрмму, но сообщение так и продолжает все время выскакивать как будто прогрмма до сих пор работает (но на самом деле давным давно закрыта). Почему while не видит, что процесс уже =0 и можно выполнять следующие задания?
Помогите пожалуйста, не могу разобраться с этим while.
Заранее благодарю
Всех с наступающим новым годом!
Не могли бы Вы мне помочь? У меня такая проблемка: мне наоборот нужно проверить запущена ли программа, если да - выдать сообщение пользователю,чтоб он ее закрыл. По истечении некоторого времени опять проверить запущена ли программа и если уже нет - перейти к следующим заданиям. Все вроде сделал правильно, но когда while проверил что процесс >0 и выдал сообщение пользователю, пользователь закрыл эту прогрмму, но сообщение так и продолжает все время выскакивать как будто прогрмма до сих пор работает (но на самом деле давным давно закрыта). Почему while не видит, что процесс уже =0 и можно выполнять следующие задания?
Помогите пожалуйста, не могу разобраться с этим while.
Заранее благодарю
- Вложения
-
- backup.xsc
- (9.1 КБ) 557 скачиваний
- Alex
- Ас
- Сообщения: 2833
- Зарегистрирован: Вт апр 05, 2005 3:28 pm
- Откуда: Kaliningrad City
- Благодарил (а): 2 раза
- Поблагодарили: 91 раз
- Контактная информация:
Re: Как проверить запущена ли программа?
Задачу пока не смотрел, но могу предположить, что внутри while не вычисляется заново количество запущенных процессов. По идее логика должна быть такая:
Вычисляем количество процессов
Сохраняем это количество в переменную X
while X>0 do
Сообщение
Пауза (если надо)
Вычисляем количество процессов
Сохраняем это количество в переменную X
end
Вычисляем количество процессов
Сохраняем это количество в переменную X
while X>0 do
Сообщение
Пауза (если надо)
Вычисляем количество процессов
Сохраняем это количество в переменную X
end
-
- Пассажир
- Сообщения: 7
- Зарегистрирован: Пт дек 30, 2011 11:29 am
- Благодарил (а): 0
- Поблагодарили: 0
Re: Как проверить запущена ли программа?
Здравствуйте.
Спасибо большое Alex за ответ и помощь. Но не могли бы вы привести пример как это реализовывается, а то я суть понял, но воплотить что то никак не получается:-(
Каким образом сохранять это количество в переменную Х?
Извините, но я не сильно разбираюсь в этом.
Спасибо большое Alex за ответ и помощь. Но не могли бы вы привести пример как это реализовывается, а то я суть понял, но воплотить что то никак не получается:-(
Каким образом сохранять это количество в переменную Х?
Извините, но я не сильно разбираюсь в этом.
-
- Пассажир
- Сообщения: 7
- Зарегистрирован: Пт дек 30, 2011 11:29 am
- Благодарил (а): 0
- Поблагодарили: 0
Re: Как проверить запущена ли программа?
Спасибо, Alex, что рассказал логику. Вроде все получилось:-) Вот отправляю задание. Посмотри пожалуйста правильно ли.
- Вложения
-
- backup ClientSB good.xsc
- (13.66 КБ) 669 скачиваний