Как сделать исключение повторного запуска программы в delphi?

Пользователь

от kenya , в категории: Другие , 10 месяцев назад

Как сделать исключение повторного запуска программы в delphi?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

Пользователь

от johnpaul.blick , 10 месяцев назад

@kenya 

В Delphi можно реализовать исключение повторного запуска программы с помощью следующих шагов:

  1. Создание мьютекса: В проекте Delphi создайте новый объект TMultiReadExclusiveWriteSynchronizer. Этот объект позволит одновременно читать и записывать данные, но не позволит запустить несколько экземпляров программы одновременно.
  2. Инициализация мьютекса: В методе FormCreate инициализируйте мьютекс, установив имя мьютекса.
  3. Проверка запуска: В методе FormCreate проверьте, удалось ли захватить мьютекс. Если захватить не удалось, это означает, что программа уже запущена, и вы можете закрыть приложение.


Ниже приведен пример кода:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
uses
  Windows,
  SyncObjs;

var
  Mutex: TMultiReadExclusiveWriteSynchronizer;

procedure TForm1.FormCreate(Sender: TObject);
begin
  Mutex := TMultiReadExclusiveWriteSynchronizer.Create;
  try
    if Mutex.BeginWrite then
    begin
      Mutex.EndWrite;
    end
    else
    begin
      Application.Terminate;
    end;
  except
    Mutex.Free;
    raise;
  end;
end;

procedure