Programm nur einmal starten

SoE-Spaark-

Cadet 3rd Year
Registriert
Apr. 2002
Beiträge
48
Wie kann ich in C++ (Borland) verhindern das ein Programm mehrmals gestartet werden kann. Wenn es schon läuft und ein zweites mal gestarte wird soll ne Medlung kommen und das Programm dann wieder geschlossen werden.

Vielen Dank schonmal im Voraus

Spaark
 
Ich programmiere zwar Delphi, aber da sich das größtenteils auf die WindowsAPI bezieht, sollte dir das auch weiter helfen: (ich versuch auch mein bestes C :-))

Was du brauchst ist ein Mutex. Für diesen solltest du dir einen eindeutigen Namen überlegen, z.B. "MutexMeineAnwendungV1.0". Zufällige Konflikte sollten ausgeschlossen sein.

Beim Anwendungsstart machst du folgendes:

DWORD hndl;

hndl = CreateMutex (NULL, 1, "MutexMeineAnwendungV1.0");
if (GetLastError() == ERROR_ALREADY_EXISTS)
{
MessageBox (0, "Anwendung ist bereits geöffnet", "Fehler", MB_OK || MB_ICONERROR);
Halt (1);
}


Achso, nicht vergessen, den Mutex am Ende der Anwendung wieder freizugeben:

ReleaseMutex (hndl);
 
Zuletzt bearbeitet:
Zurück
Oben