Главная страница
    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.036 c
3-40887
Юля П
2003-10-20 14:45
2003.11.13
Поиск и DBGrid


1-41433
Andrey V.
2003-10-29 14:02
2003.11.13
О разнице вариантов создания формы ...


1-41584
Users
2003-10-27 12:11
2003.11.13
Вставка в EXCEL OLAP куба средствами Delphi


1-41590
Vinter
2003-11-04 10:10
2003.11.13
Вапрос по INI файлам


1-41420
Jack
2003-10-29 15:45
2003.11.13
Перекомпиляция system.pas





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский