![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Проверка уникальности приложения [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 первую копию.