Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Игры";
Текущий архив: 2003.11.13;
Скачать: [xml.tar.bz2];

Вниз

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

 
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 вся ветка

Форум: "Игры";
Текущий архив: 2003.11.13;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.051 c
3-40971
SasaR
2003-10-16 17:16
2003.11.13
BLOB поле


1-41401
McSimm2
2003-11-04 16:41
2003.11.13
Событие в TMainMenu


1-41260
GIL
2003-10-31 16:19
2003.11.13
заполнение массива


7-42207
Samael6
2003-08-23 20:03
2003.11.13
Криптография


3-40983
Vlad
2003-10-16 13:03
2003.11.13
подскажите с UDF





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский