Warum muss es zwingend eine
GUID sein? Per default würde es
imho auch der Pfad zu Programm tun.
Hmpf, hast Recht. Hab den
GUID Parameter entfernt und folgenden Namen gegeben:
semaphoreName := 'Local\' + StringReplace(ParamStr(0), '\', '/', [rfReplaceAll]);
Allerdings ist ein Editieren der
.dpr immer noch notwendig, da ja der Programmstart u.U. abgebrochen werden muss. Oder kann ich das irgendwie sauber aus dem
initialization Teil der
Unit heraus machen?
KA was du da machst aber das geht mit 1 Zeile.
ShellExecute(0, 'open', PWideChar(ParamStr(0)), nil, nil, SW_SHOW)
Ja, so funktioniert es auch, allerdings kannst du so nicht garantieren, dass nur höchstens eine Instanz deiner Anwendung läuft. Das ist bei mir leider notwendig.