![]() |
AW: Backup Hero
Zitat:
Dafür gibt es die Beiden ja schließlich... |
AW: Backup Hero
Ich mache es schon seit Jahren so - zum Beispiel in der DPR-Datei des Projekts:
Delphi-Quellcode:
Man wird mich für diesen Code köpfen. Aber er funktioniert seit Jahren auf den unterschiedlichsten System vollkommen einwandfrei.
var
hExistingInstance: THandle; aHandle: THandle; const sUniqueMutexID: String = 'irgendeineuniquemutexid'; begin // Prüfen, ob das Fenster existiert. Wenn ja, kann man ja bei ".............." mit SendMessage Nachrichten an das Fenster senden o.ä. hExistingInstance := FindWindow('TMeinProgrammOderSo', nil); // Fenster scheint zu existieren... if hExistingInstance <> 0 then begin // .............. Halt(1); end; // Wenn das Fenster nicht existiert, nur dann einen Mutex erstellen aHandle := CreateMutex(nil, False, PWideChar(sUniqueMutexID)); // Und wenn auch das schief gehen sollte.... abbrechen if GetLastError = ERROR_ALREADY_EXISTS then begin CloseHandle(aHandle); Halt(1); end; end; |
AW: Backup Hero
Zitat:
Aber "FindWindow" findet doch nur Fenster, die sichtbar sind oder ??? Ist schon 'ne Weile her als ich das zum letzten Mal benutzt habe. |
AW: Backup Hero
Zitat:
Das FindWindow mache ich auch nur, damit ich Kommandos ans Programm schicken kann. Würde man das FindWindow weglassen, würde notfalls CreateMutex greifen. Dort kann man ja auch reagieren. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:16 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