Как не допустить запуск второй копии программы 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}