Вниз
Скачать: 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.034 c
7-42214
SiJack
2003-09-04 14:06
2003.11.13
работа с Com в Win98-winXP


1-41586
Василиск
2003-10-27 11:37
2003.11.13
Delphi и Excel (проблема с последним)


1-41614
vic_vm
2003-10-25 20:29
2003.11.13
Не могу перевести C++ код на Delphi


1-41213
Ivolg
2003-11-01 20:13
2003.11.13
Аналог Artmoney!!!


1-41544
Palych
2003-10-21 18:31
2003.11.13
Fast Reports




   Наверх