Es ging mir eigentlich nur darum, dass sich die zweite Instanz des Programmes nicht schließt.
Kurz könnte man den Code daher auch so darstellen:
Delphi-Quellcode:
mHandle := CreateMutex(nil, True, '{E46EF2D5-34C6-4FC1-A3BA-E9A49C0327B0}');
if GetLastError = ERROR_ALREADY_EXISTS then
Exit;
Und komischerweise hab ich grad bemerkt, dass er so auch funktioniert.
So aber nicht:
Delphi-Quellcode:
mHandle := CreateMutex(nil, True, '{E46EF2D5-34C6-4FC1-A3BA-E9A49C0327B0}');
ShowMessage(IntToStr(mHandle));
if GetLastError = ERROR_ALREADY_EXISTS then
Exit;
Ist zwar jetzt für mein Problem unerheblich (Das Showmessage kann da ja weg) aber es würde mich doch interessieren, warum es so nicht funktioniert. Schreibt ShowMessage was in LastError rein?
EDIT:
Auf jeden Fall schonmal danke für eure Antworten.