Как проверить запущена ли программа?

Просто демонстрации как работают те или иные действия или события
Аватара пользователя
Alex
Ас
Сообщения: 2833
Зарегистрирован: Вт апр 05, 2005 3:28 pm
Откуда: Kaliningrad City
Благодарил (а): 2 раза
Поблагодарили: 91 раз
Контактная информация:

Re: Как проверить запущена ли программа?

Сообщение Alex » Ср фев 16, 2011 10:41 am

Может быть окно не закрывается, а скрывается, продолжает висеть в памяти?

FomakinSergey
Пассажир
Сообщения: 13
Зарегистрирован: Ср фев 09, 2011 9:37 am
Благодарил (а): 0
Поблагодарили: 0

Re: Как проверить запущена ли программа?

Сообщение FomakinSergey » Ср фев 16, 2011 10:57 am

Нашел то место...
При отработки "Найти окно" с включенной галкой на "Не показывать скрытые окна в списке заголовков окон" окно находится, если оно не свернуто.
Если эту галочку убрать, то окно находиться, даже если оно скрыто,... но!!! Но оно будет находиться и тогда если окна нет, но есть процесс!!!
Как проверить что есть процесс, но нет окна???

Аватара пользователя
Alex
Ас
Сообщения: 2833
Зарегистрирован: Вт апр 05, 2005 3:28 pm
Откуда: Kaliningrad City
Благодарил (а): 2 раза
Поблагодарили: 91 раз
Контактная информация:

Re: Как проверить запущена ли программа?

Сообщение Alex » Ср фев 16, 2011 11:03 am

Вот этой программой можно проверить уничтожено окно или болтается еще в невидимом состоянии:
http://www.xstarter.com/rus/download/WINSPECT.zip

У меня получается такое сделать, если делаю для формы Close, но не добавляю Action:=caFree; в OnClose.

FomakinSergey
Пассажир
Сообщения: 13
Зарегистрирован: Ср фев 09, 2011 9:37 am
Благодарил (а): 0
Поблагодарили: 0

Re: Как проверить запущена ли программа?

Сообщение FomakinSergey » Ср фев 16, 2011 11:36 am

Я сейчас протестить не смогу, т.к. это исключительный случай (происходит ночью, хз из за чего ))).
А можно как нибудь отловить состояние окна?

FomakinSergey
Пассажир
Сообщения: 13
Зарегистрирован: Ср фев 09, 2011 9:37 am
Благодарил (а): 0
Поблагодарили: 0

Re: Как проверить запущена ли программа?

Сообщение FomakinSergey » Ср фев 16, 2011 12:04 pm

Вроде бы нашел решение проблемы.
Использую плагин WindowsScaner. После действия "Найти окно" в действие "WindowsScaner" пуляю Class и Caption окна и проверяю окно на WindowsVisible.

FomakinSergey
Пассажир
Сообщения: 13
Зарегистрирован: Ср фев 09, 2011 9:37 am
Благодарил (а): 0
Поблагодарили: 0

Re: Как проверить запущена ли программа?

Сообщение FomakinSergey » Ср фев 16, 2011 12:40 pm

Я ошибся ((( При свернутом окне WindowsVisible тоже возвращает False (
Можете что нибудь посоветовать в этом случае?

FomakinSergey
Пассажир
Сообщения: 13
Зарегистрирован: Ср фев 09, 2011 9:37 am
Благодарил (а): 0
Поблагодарили: 0

Re: Как проверить запущена ли программа?

Сообщение FomakinSergey » Чт фев 17, 2011 9:38 am

Видимо такую ситуацию не получиться отследить, т.к. форма приложение на самом деле существует. Единственное, хотелось бы как нибудь отлавливать статус окна (свернутое, развернутое, ...). Можно ли это реализовать?
А в общем программа очень понравилась! Большущее спасибо автору! До этого использовали nncron, который постоянно подвисал.

Аватара пользователя
Alex
Ас
Сообщения: 2833
Зарегистрирован: Вт апр 05, 2005 3:28 pm
Откуда: Kaliningrad City
Благодарил (а): 2 раза
Поблагодарили: 91 раз
Контактная информация:

Re: Как проверить запущена ли программа?

Сообщение Alex » Чт фев 17, 2011 9:51 am

Такое не очень просто реализовать. Дело в том, что если окно минимизировано, то у него есть статус IsMinimized. Если окно не минимизировано, но не видимо, то у него нет этого статуса, можно обратиться к IsVisible. Но насколько я понимаю, Вам это не подходит, потому что окно может быть закрыто другим приложением и будет иметь IsVisible=False.

romal
Пассажир
Сообщения: 7
Зарегистрирован: Пт дек 30, 2011 11:29 am
Благодарил (а): 0
Поблагодарили: 0

Re: Как проверить запущена ли программа?

Сообщение romal » Пт дек 30, 2011 12:17 pm

Здравствуйте.
Всех с наступающим новым годом!
Не могли бы Вы мне помочь? У меня такая проблемка: мне наоборот нужно проверить запущена ли программа, если да - выдать сообщение пользователю,чтоб он ее закрыл. По истечении некоторого времени опять проверить запущена ли программа и если уже нет - перейти к следующим заданиям. Все вроде сделал правильно, но когда while проверил что процесс >0 и выдал сообщение пользователю, пользователь закрыл эту прогрмму, но сообщение так и продолжает все время выскакивать как будто прогрмма до сих пор работает (но на самом деле давным давно закрыта). Почему while не видит, что процесс уже =0 и можно выполнять следующие задания?
Помогите пожалуйста, не могу разобраться с этим while.
Заранее благодарю
Вложения
backup.xsc
(9.1 КБ) 557 скачиваний

Аватара пользователя
Alex
Ас
Сообщения: 2833
Зарегистрирован: Вт апр 05, 2005 3:28 pm
Откуда: Kaliningrad City
Благодарил (а): 2 раза
Поблагодарили: 91 раз
Контактная информация:

Re: Как проверить запущена ли программа?

Сообщение Alex » Пт янв 06, 2012 9:28 am

Задачу пока не смотрел, но могу предположить, что внутри while не вычисляется заново количество запущенных процессов. По идее логика должна быть такая:
Вычисляем количество процессов
Сохраняем это количество в переменную X
while X>0 do
Сообщение
Пауза (если надо)
Вычисляем количество процессов
Сохраняем это количество в переменную X
end

romal
Пассажир
Сообщения: 7
Зарегистрирован: Пт дек 30, 2011 11:29 am
Благодарил (а): 0
Поблагодарили: 0

Re: Как проверить запущена ли программа?

Сообщение romal » Вт янв 10, 2012 1:38 pm

Здравствуйте.
Спасибо большое Alex за ответ и помощь. Но не могли бы вы привести пример как это реализовывается, а то я суть понял, но воплотить что то никак не получается:-(
Каким образом сохранять это количество в переменную Х?
Извините, но я не сильно разбираюсь в этом.

romal
Пассажир
Сообщения: 7
Зарегистрирован: Пт дек 30, 2011 11:29 am
Благодарил (а): 0
Поблагодарили: 0

Re: Как проверить запущена ли программа?

Сообщение romal » Ср янв 11, 2012 4:46 pm

Спасибо, Alex, что рассказал логику. Вроде все получилось:-) Вот отправляю задание. Посмотри пожалуйста правильно ли.
Вложения
backup ClientSB good.xsc
(13.66 КБ) 669 скачиваний

Аватара пользователя
Alex
Ас
Сообщения: 2833
Зарегистрирован: Вт апр 05, 2005 3:28 pm
Откуда: Kaliningrad City
Благодарил (а): 2 раза
Поблагодарили: 91 раз
Контактная информация:

Re: Как проверить запущена ли программа?

Сообщение Alex » Вт янв 17, 2012 7:36 am

По виду вроде все верное. Главное чтобы работало :).

Ответить