Как не допустить запуск второй копии программы V
Пришло от читателя письмо:
Добрый день!
Хотел бы добавить ещё один метод, с помощью которого можно
предотвращать запуск второй копии приложения.
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.
|
С уважением,
Васильев Николай.
5 апреля 2000 г., среда
10:15:23
[000780]