Wie kann ich verhindern, da ein Programm doppelt gestartet wird.
Ich denke unter Windows könnte man dies mit FindWindow lösen.
Gibt es dafür auch etwas Platformübergreifendes ?
Doppelstart verhindern.
-
- Beiträge: 6900
- Registriert: Do 2. Jan 2014, 17:21
- OS, Lazarus, FPC: Linux (die neusten Trunk)
- CPU-Target: 64Bit
- Wohnort: Schweiz
Doppelstart verhindern.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot
Mit Java und C/C++ sehe ich rot
-
- Beiträge: 958
- Registriert: Mo 11. Sep 2006, 22:56
Re: Doppelstart verhindern.
Unter Windows macht man das eigentlich so:
(wobei es unter Windows mehrere gut funktionierende Möglichkeiten gibt.)
btw: Über UniqueInstance hab' ich bisher nur Gutes gehört...
(wobei es unter Windows mehrere gut funktionierende Möglichkeiten gibt.)
btw: Über UniqueInstance hab' ich bisher nur Gutes gehört...
Code: Alles auswählen
CONST
MutexName = 'MeinProgramm MuTeX';
VAR
hMutex: THandle;
Begin
Try
hMutex:= CreateMutex(Nil, True, MutexName);
If (hMutex = 0) Or (GetLastError = ERROR_ALREADY_EXISTS)
Then Exit;
Try
Application.Initialize;
Application.CreateForm(TForm1, Form1);
Application.Run;
Finally
If hMutex <> 0
Then CloseHandle(hMutex);
End;
Except
// LOG...
End;
End.
-
- Beiträge: 6900
- Registriert: Do 2. Jan 2014, 17:21
- OS, Lazarus, FPC: Linux (die neusten Trunk)
- CPU-Target: 64Bit
- Wohnort: Schweiz
Re: Doppelstart verhindern.
Danke, dies scheint recht gut zu funktionieren.
Was noch ein Tüpfchen auf dem i wäre, wen es das schon gestartet in den Vordergrund holen würde.
Die Anleitung gibt es sogar in deutsch: http://wiki.lazarus.freepascal.org/UniqueInstance/de
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot
Mit Java und C/C++ sehe ich rot
Re: Doppelstart verhindern.
Nur als Ergänzung. Man könnte das Ganze auch per SimpleIPC (http://www.freepascal.org/docs-html/3.0 ... leipc.html) lösen. Damit kann man verschiedene zusätzliche Kommandos einpflegen.
Code: Alles auswählen
type
TLiveSelection = (lsMoney, lsChilds, lsTime);
TLive = Array[0..1] of TLiveSelection;
Re: Doppelstart verhindern.
Ich hab' noch 'ne andere Version gefunden:...
Die scheint neuer zu sein, hab' sie aber noch nicht ausprobiert...
Die scheint neuer zu sein, hab' sie aber noch nicht ausprobiert...
- Dateianhänge
-
UniqueInstance V5.rar
- (15.07 KiB) 93-mal heruntergeladen
-
- Beiträge: 6900
- Registriert: Do 2. Jan 2014, 17:21
- OS, Lazarus, FPC: Linux (die neusten Trunk)
- CPU-Target: 64Bit
- Wohnort: Schweiz
Re: Doppelstart verhindern.
Hast du diese aus der Zukunft geholt ?Die scheint neuer zu sein, hab' sie aber noch nicht ausprobiert...
Alles Jahrgang 2035.
Die Dateien scheine alle gleich gross zu sein, wie im obigen Link.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot
Mit Java und C/C++ sehe ich rot