Страница 3 из 3

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

Добавлено: Ср фев 16, 2011 10:41 am
Alex
Может быть окно не закрывается, а скрывается, продолжает висеть в памяти?

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

Добавлено: Ср фев 16, 2011 10:57 am
FomakinSergey
Нашел то место...
При отработки "Найти окно" с включенной галкой на "Не показывать скрытые окна в списке заголовков окон" окно находится, если оно не свернуто.
Если эту галочку убрать, то окно находиться, даже если оно скрыто,... но!!! Но оно будет находиться и тогда если окна нет, но есть процесс!!!
Как проверить что есть процесс, но нет окна???

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

Добавлено: Ср фев 16, 2011 11:03 am
Alex
Вот этой программой можно проверить уничтожено окно или болтается еще в невидимом состоянии:
http://www.xstarter.com/rus/download/WINSPECT.zip

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

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

Добавлено: Ср фев 16, 2011 11:36 am
FomakinSergey
Я сейчас протестить не смогу, т.к. это исключительный случай (происходит ночью, хз из за чего ))).
А можно как нибудь отловить состояние окна?

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

Добавлено: Ср фев 16, 2011 12:04 pm
FomakinSergey
Вроде бы нашел решение проблемы.
Использую плагин WindowsScaner. После действия "Найти окно" в действие "WindowsScaner" пуляю Class и Caption окна и проверяю окно на WindowsVisible.

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

Добавлено: Ср фев 16, 2011 12:40 pm
FomakinSergey
Я ошибся ((( При свернутом окне WindowsVisible тоже возвращает False (
Можете что нибудь посоветовать в этом случае?

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

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

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

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

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

Добавлено: Пт дек 30, 2011 12:17 pm
romal
Здравствуйте.
Всех с наступающим новым годом!
Не могли бы Вы мне помочь? У меня такая проблемка: мне наоборот нужно проверить запущена ли программа, если да - выдать сообщение пользователю,чтоб он ее закрыл. По истечении некоторого времени опять проверить запущена ли программа и если уже нет - перейти к следующим заданиям. Все вроде сделал правильно, но когда while проверил что процесс >0 и выдал сообщение пользователю, пользователь закрыл эту прогрмму, но сообщение так и продолжает все время выскакивать как будто прогрмма до сих пор работает (но на самом деле давным давно закрыта). Почему while не видит, что процесс уже =0 и можно выполнять следующие задания?
Помогите пожалуйста, не могу разобраться с этим while.
Заранее благодарю

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

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

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

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

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

Добавлено: Ср янв 11, 2012 4:46 pm
romal
Спасибо, Alex, что рассказал логику. Вроде все получилось:-) Вот отправляю задание. Посмотри пожалуйста правильно ли.

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

Добавлено: Вт янв 17, 2012 7:36 am
Alex
По виду вроде все верное. Главное чтобы работало :).