![]() |
Doppelstart verhindern
Wie kann ich verhindern, daß mein Programm 2 mal (zur gleichen Zeit) gestartet wird ??
Unter 32Bit-Windows bedient man sich eines Mutex. Binde folgende Unit ein, du musst sie einfach nur deinem Projekt hinzufügen:
Delphi-Quellcode:
Um die Lösung nicht nur für den aktuell angemeldeten Benutzer greifen zu lassen (eine Programminstanz pro User), sonder für das ganze System (eine Programminstanz pro Rechner), bedarf es nur dem string 'Global\' als Präfix für den Mutexnamen.
unit NichtDoppeltStarten;
interface implementation uses windows,Dialogs,sysutils; var mHandle: THandle; // Mutexhandle Initialization mHandle := CreateMutex(nil,True,'xxxxx'); // 'xxxxx' Der Anwendungsname ist hier einzutragen if GetLastError = ERROR_ALREADY_EXISTS then begin // Anwendung läuft bereits {showMessage('Anwendung läuft bereits!!!!!');} // Wenn du deine Meldung willst, mach die Klammern weg Halt; end; finalization // ... und Schluß if mHandle <> 0 then CloseHandle(mHandle) end. {Dieter Hirt} [edit=Matze][code] durch [delphi]-Tags ersetzt. Mfg, Matze[/edit] [edit=Dax]reformat. Mfg, Dax[/edit] [edit=Dax]'Global\'-Tipp hinzugefügt. Mfg, Dax[/edit] |
Re: Doppelstart verhindern
Liste der Anhänge anzeigen (Anzahl: 2)
Unser Forenuser Shaman hat für diese Funktion eine kleine Komponente geschrieben. Sie ist diesem Beitrag angehängt.
Zitat:
[edit=Luckie]Nicos's Unit angehängt. Mfg, Luckie[/edit] |
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:27 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz