API - usando semaforos |
Top Previous Next |
|
program Project1;
uses Windows, Forms, Unit1 in 'Unit1.pas' {Form1};
{$R *.res} var hdlAplicacao: THandle; begin
// Ligar o sinal "vermelho" para indicar // que já está rodando CreateSemaphore(nil, 1, 1, 'Project1 - Nome do Semáforo tem que ser único.');
// Se o sinal já estava "vermelho" if GetLastError = ERROR_ALREADY_EXISTS then // Então ativar a janela original e terminar begin hdlAplicacao := FindWindow(nil, 'Form1'); if not isWindowVisible(hdlAplicacao) then ShowWindow(hdlAplicacao, SW_RESTORE); SetForegroundWindow(hdlAplicacao); end else begin Application.Initialize; Application.CreateForm(TForm1, Form1); Application.Run; end; end. |