Вниз
Скачать: CL | DM;

Работа с игрой   Найти похожие ветки 

 
P4   (2003-03-27 08:17) [0]

Как мне узнать запущена игра(мне известен её .exe файл{если это нужно}) программным способом.Заранее благодарю.


 
BANick ©   (2003-03-28 19:03) [1]

Попытайся переименовать этот exe и если он запущен будет ексепшон


 
R2D2   (2003-03-29 18:16) [2]

Ага, а меня интересует как узнать запущена она или нет АППАРАТНЫМ способом :))
Вот ответ на твой вопрос (если мозгИ есть - переделаешь под свои нужды :):

Как определить работает ли уже данное приложение или это первая его копия?
--------------------------------------------------------------------------------
Каждый экземпляр программы имеет ссылку
на свою предыдущую копию - hPrevInst: hWnd.
Ее можно проверить перед созданием приложения
и при необходимости отреагировать соответствующим образом. Если запущена только одна копия,
то эта ссылка равна нулю.
Пример:
procedure TForm1.FormCreate(Sender: TObject);
begin {Проверяем есть ли указатель на предыдущую копию приложения}
IF hPrevInst <> 0 THEN BEGIN
{Если есть, то выдаем сообщение и выходим}
MessageDlg("Программа уже запущена!", mtError, [mbOk], 0);
Halt; END; ( не мешаем созданию формы) Ага, а меня интересует как узнать запущена она или нет АППАРАТНЫМ способом :))
Вот ответ на твой вопрос (если мозгИ есть - переделаешь под свои нужды :):

Как определить работает ли уже данное приложение или это первая его копия?
--------------------------------------------------------------------------------
Каждый экземпляр программы имеет ссылку
на свою предыдущую копию - hPrevInst: hWnd.
Ее можно проверить перед созданием приложения
и при необходимости отреагировать соответствующим образом. Если запущена только одна копия,
то эта ссылка равна нулю.
Пример:
procedure TForm1.FormCreate(Sender: TObject);
begin {Проверяем есть ли указатель на предыдущую копию приложения}
IF hPrevInst <> 0 THEN BEGIN
{Если есть, то выдаем сообщение и выходим}
MessageDlg("Программа уже запущена!", mtError, [mbOk], 0);
Halt; END; {Иначе - ничего не делаем (не мешаем созданию формы)}end;
P.S. Для выхода необходимо использовать Halt, а не Close,
как хотелось бы, так как форма еще не создана и закрывать нечего.


 
P5   (2003-05-08 16:58) [3]


> Как мне узнать запущена игра(мне известен её .exe файл{если
> это нужно}) программным способом.Заранее благодарю.

Юзай команду FindWindow

> Попытайся переименовать этот exe и если он запущен будет
> ексепшон

Ексепшон будет и тогда, когда внешняя программа как-нибудь
работает с этим файлом. Короче, способ ненадёжный.



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.021 c
8-41733
EvgenTss
2003-06-01 20:54
2003.11.13
требуется слить ряд файлов в один...


4-42275
samson
2003-09-12 08:15
2003.11.13
очередь сообщений Windows


6-41778
FFF
2003-09-19 08:40
2003.11.13
Привет всем, подскажите пож-ста возможно ли подключить и принтер


14-41921
kaif
2003-10-19 17:10
2003.11.13
Как грамотно писать: компонент или компонента?


3-40975
Tumcoat
2003-10-16 04:39
2003.11.13
Удаление временных dbf-файлов




   Наверх