Zitat von
Viktorii:
Zitat von
brechi:
Delphi-Quellcode:
mHandle := CreateMutex(nil, True, 'bineinetolleDLL');
if GetLastError = ERROR_ALREADY_EXISTS then
begin
CreateMessageDialog('Application already running!', mtWarning, [mbOk]).ShowModal;
Halt;
end;
Das funktioniert in sofern, dass das doppelte Öffnen Erkannt wird und die Medlung angezeigt wird. Allerdings wird die Anwendung nicht geschlossen, sondern läuft parallel zu der ersten weiter.
Ich glaube dieser Code soll in die Applikation, nicht in die
DLL. Sprich: Tritt kein
ERROR_ALREADY_EXISTS auf, so darf die Applikation die
DLL laden. Beim freigeben der
DLL muss sie natürlich auch wieder den
Mutex freigeben. Tritt der Fehler jedoch auf, so verfährst du wie es im Code oben steht, bzw. wie du es auch bei deiner "MultipleAppicationNotifyer"-
Unit tust.
(Seh ich doch richtig, oder?) ...