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

{codecitation class=»brush: pascal; gutter: false;» width=»600px»}

Автор: Васильев Николай

Идет колдун по базару. Нос крючком, на голове колпак, сам в халате до пят звездами расшитом. Кругом фрукты, насекомые там над ними… Вдруг на нос ему садится оса. Колдун хлоп — и убил осу. Идет дальше. На нос ему садится еще одна оса. Опять хлоп — и нет осы. На нос садится третья. Тут колдуну надоело, достал он волшебную палочку и приказал:

— Хочу, чтобы осы сами по себе дохли без всякой видимой причины! Так появилась ОС Windоws 95…

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.

{/codecitation}

Добавить комментарий