Hallo,
Ich möchte verhindern dass mein Programm zwei mal gestartet wird. Dazu gibt es unter Windows (mit Delphi) "CreateMutex".
Gibt es sowas auch für Linux / Lazarus?
Hier ist ein Beispiel:
http://www.swissdelphicenter.ch/torry/s ... .php?id=42" onclick="window.open(this.href);return false;
Vielen Dank für eure Hilfe, Gruß Markus
CreateMutex für Linux?
-
- Beiträge: 1581
- Registriert: Fr 10. Okt 2008, 23:54
- OS, Lazarus, FPC: Winuxarm (L 4 FPC 3.2.2)
- CPU-Target: 32/64Bit
CreateMutex für Linux?
Zuletzt geändert von MmVisual am Sa 27. Nov 2010, 22:42, insgesamt 1-mal geändert.
EleLa - Elektronik Lagerverwaltung - www.elela.de
-
- Beiträge: 1581
- Registriert: Fr 10. Okt 2008, 23:54
- OS, Lazarus, FPC: Winuxarm (L 4 FPC 3.2.2)
- CPU-Target: 32/64Bit
Re: CreateMutex?
Das ist mein Code für Windows:
Es fehlt jetzt nur noch die Implementierung für Linux.
Weiß jemand wie das geht?
Code: Alles auswählen
Procedure TestMutex(sMutexText, sWindow: String);
{$ifdef WINDOWS}
Var h: HWND;
{$endif}
Begin
{$ifdef WINDOWS}
mHandle := CreateMutex(Nil, True, PChar(sText));
If GetLastError = ERROR_ALREADY_EXISTS Then
Begin
If sWindow <> '' Then // Anderes Fenster aktivieren
Begin
h := FindWindow(Nil, PChar(sWindow));
If h <> 0 Then
Begin
ShowWindow(h, SW_RESTORE);
SetForegroundWindow(h);
end;
end;
Halt;
End;
{$endif}
end;
initialization
mHandle := 0; // Siehe TestMutex()
finalization
{$ifdef WINDOWS}
If mHandle <> 0 Then CloseHandle(mHandle) // Siehe TestMutex()
{$endif}
Weiß jemand wie das geht?
EleLa - Elektronik Lagerverwaltung - www.elela.de
Re: CreateMutex für Linux?
http://wiki.lazarus.freepascal.org/UniqueInstance/de" onclick="window.open(this.href);return false;