![]() |
Mehrfaches ausführen von Konsolenanwendung verhindern /Mutex
Hallo DP,
Ich verwende seit einer Weile folgenden Code um mehrfaches ausführen meiner Programme zu verhindern.
Delphi-Quellcode:
Jetzt möchte ich eines dieser Programme als Konsolenanwendung umsetzten. Und dieses sollte auch nicht mehrfach ausführbar sein.
Initialization
mHandle := CreateMutex(nil, True, '979246B5-A7CA-7E5F-A01C-8034E778B70C'); if GetLastError = ERROR_ALREADY_EXISTS then begin Halt; end; finalization if mHandle <> 0 then CloseHandle(mHandle); end. Wie mach ich das nun am besten o.O initialization und finalization fallen ja weg :gruebel: |
Re: Mehrfaches ausführen von Konsolenanwendung verhindern /M
Einfachste Lösung:
Delphi-Quellcode:
Andere Lösung: eine Unit schreiben, die man im Projekt möglichst weit oben in der uses-Liste angibt. Darin wie bisher mit initialization und finalization arbeiten.
program ProjectMutex;
{$APPTYPE CONSOLE} uses Windows; var mHandle: THandle; begin mHandle := CreateMutex(nil, True, '979246B5-A7CA-7E5F-A01C-8034E778B70C'); if GetLastError = ERROR_ALREADY_EXISTS then begin Halt; end; // machwas ReadLn; if mHandle <> 0 then CloseHandle(mHandle); end. |
Re: Mehrfaches ausführen von Konsolenanwendung verhindern /M
Wuii mjustin danke für die schnelle Antwort :-D Wobei.. da hätte ich auch als Anfänger selbst drauf kommen müssen. Gruß.
|
Re: Mehrfaches ausführen von Konsolenanwendung verhindern /M
fallen initialization und finalization in Konsolenanwendungen wirklich weg? :shock:
|
Re: Mehrfaches ausführen von Konsolenanwendung verhindern /M
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:56 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-2025 by Thomas Breitkreuz