Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Проверка уникальности приложения [D7, WinXP]


M@jor ©   (2004-06-22 22:24:00) 

Подскажите пожалуйста как сделать,чтоб приложение во время открытия проверяла,чтоб не было запущенно других копий этой программы.


Думкин   (2004-06-23 07:07:00) [1]

Правда с выходом надо аккуратнее, что-то поспешил.


Думкин   (2004-06-23 06:55:00) [2]

var
 SemaphoreID : THandle;

begin
    SemaphoreID := CreateSemaphore(nil, 0, 1, PChar('8199952C-622D-4287-B19F-D5D3277C983D'));  
    if GetLastError = ERROR_ALREADY_EXISTS then Halt(0);
    ...
    CloseHandle(SemaphoreID);
    ....
end.


grom   (2004-06-23 06:27:00) [3]

program Open;

uses Forms,Windows,Main in 'Main.pas' {Form1};

{$R *.RES}

var HM:THandle;
function C: boolean;
begin
 HM:=OpenMutex(MUTEX_ALL_ACCESS,false,'23.06.20004');
 Result:=(HM<>0);
 if HM=0 then HM:=CreateMutex(nil,false,'23.06.20004);
end;

begin if C then begin
 Application.MessageBox(' Проверка уникальности приложения  !!!  ',' "Open"',MB_ICONEXCLAMATION);
 Exit;
end;
 Application.CreateForm(TForm1, Form1);
 Application.Run;
end.


MIGUR   (2004-06-23 04:44:00) [4]

Рой здесь:
...\DELPHI7\DEMOS\IPCDEMOS\ipcthrd.pas, функция IsMonitorRunning()


Palladin   (2004-06-22 23:10:00) [5]

http://www.delphimaster.ru/cgi-bin/faq.pl?look=1&id=988619824&n=15


TUser   (2004-06-22 23:06:00) [6]

Самый простой способ - отыскивать через FindWindow первую копию.


Наверх

Титульная страница Поиск, карта сайта Написать письмо