Как не допустить запуск второй копии программы. Вариант 5

program pds;

uses

Windows,
Forms,
Main in 'MAIN.PAS' {MainForm},

const
MemFileSize=127;
MemFileName='one_example';

var
MemHnd:HWND;

{$R *.RES}
begin
MemHnd:=CreateFileMapping(HWND($FFFFFFFF),nil,
PAGE_READWRITE,0,MemFileSize,
MemFileName);
if GetLastError<>ERROR_ALREADY_EXISTS then
begin
Application.Initialize;
with TForm1.Create(nil) do
try
Show;
Update;
Application.CreateForm(TMainForm, MainForm);
finally
Free;
end;
Application.Run;
end else Application.MessageBox('Приложение уже запущено (возможно оно свёрнуто на панели задач): Нажмите кнопку ОК для продолжения работы','Производственно-диспетчерская служба',MB_OK);
CloseHandle(MemHnd);
end.

 
« Предыдущая статья   Следующая статья »