скрыть

скрыть

  Форум  

Delphi FAQ - Часто задаваемые вопросы

| Базы данных | Графика и Игры | Интернет и Сети | Компоненты и Классы | Мультимедиа |
| ОС и Железо | Программа и Интерфейс | Рабочий стол | Синтаксис | Технологии | Файловая система |



Google  
 

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



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

Идет колдун по базару. Нос крючком, на голове колпак, сам в халате до пят звездами расшитом. Кругом фрукты, насекомые там над ними... Вдруг на нос ему садится оса. Колдун хлоп - и убил осу. Идет дальше. На нос ему садится еще одна оса. Опять хлоп - и нет осы. На нос садится третья. Тут колдуну надоело, достал он волшебную палочку и приказал:
- Хочу, чтобы осы сами по себе дохли без всякой видимой причины! Так появилась ОС 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.






Copyright © 2004-2016 "Delphi Sources". Delphi World FAQ




Группа ВКонтакте   Ссылка на Twitter   Группа на Facebook