Multiple instances in Delphi

Pagina: 1
Acties:
  • 103 views sinds 30-01-2008
  • Reageer

  • Coyote
  • Registratie: Juli 1999
  • Laatst online: 08-04-2021
Ik ben bezig een klein database-programma'tje te schrijven voor de opslag van wat gegevens.

Ik wil er nu voor zorgen dat er maar 1 instance van het programma geopend kan worden (het is nogal link als meerdere instances van 1 proggie dezelfde files proberen aan te spreken). Weet iemand hoe ik dit kan doen in Delphi? Bij de project options kon ik niks vinden.

  • JayTaph
  • Registratie: Oktober 1999
  • Laatst online: 28-11-2025

JayTaph

Portability is for canoes.

Weet ik zo niet uit mijn hoofd, maar altavista weet raad ;)

Wat je denk ik beter kunt doen, is ervoor zorgen dat je exclusive locks op je files gooit voordat je ze opent. Lijkt me sterk als dat niet kan (ff in de win api opzoeken)

Dan los je het probleem namelijk op, en ga je geen fix bouwen om het probleem heen...
Welcome to progamming ;)

Yo dawg, I heard you like posts so I posted below your post so you can post again.


  • joepP
  • Registratie: Juni 1999
  • Niet online
Je kan in de project-file een Mutex (Mutual Exclusion Object) aanmaken met de API CreateMutex. Dan ff WaitForSingleObject doen om te checken of het feest doorgaat :)

Hier een voorbeeldje:
program RunOne;

uses
Forms,
Windows,
Main in 'Main.pas' {Form1};

{$R *.RES}

var
hMutex: THandle;
begin
//create mutex
hMutex := CreateMutex(nil, False, 'IkBenAlleen');

//check if i may start
if WaitForSingleObject(hMutex, 0) <> wait_TimeOut then begin
Application.Initialize;
Application.CreateForm(TForm1, Form1);
Application.Run;
end;
end.