![]() |
shellexecute nach createmutex
hallo,
ich habe eine routine, die per createmutex testet, ob ein programm läuft und wenn nicht, dann soll es gestartet werden:
Delphi-Quellcode:
wenn ich das jez ausführe und das programm lief schon, iss alles super, WENN das programm allerdings vorher noch nicht lief und ich die procedure ausführe, macht der cursor für ca. 5 sec nur einen auf sanduhr und dann gehts weiter.
const
cMutexID = 'MoppleMapper'; var Mutex: THandle; HAPPLICATION: HWND; begin Mutex := CreateMutex(nil, True, cMutexID); if (Mutex <> 0) and (GetLastError = 0) then begin WinExec(PChar(ExtractFilePath(Application.ExeName) + 'moppl_map.exe'), SW_SHOW); Mutex := CreateMutex(nil, True, cMutexID); end; {HAPPLICATION := 0; repeat HAPPLICATION := FindWindowEx(0,HAPPLICATION, 'TApplication', PChar('MoppleMapper')); until HAPPLICATION <> Application.Handle;} end; warum? muss ich den mutex dann wieder löschen? wie? haha, ok, hat sich erledigt, CloseHandle(mutex), was sonst ... sorry, kann gelöscht werden .. mfg, eyeless |
Re: shellexecute nach createmutex
Der Mutex "stirbt" mit der letzten Referenz auf ihn. Sobald dein Programm beendet wird, ist der Mutex weg. Daher funktioniert es beim nächsten Mal den Mutex wieder zu erstellen.
Außerdem solltest du ShellExecute verwenden, nicht WinExec - NIE WinExec! |
Re: shellexecute nach createmutex
Erlärst du uns mal bitte, wieso CloseHandle das Problem gelöst hat? :shock:
Da du WinExec benutzt hast, könnte dies hier das Problem sein. Zitat:
Irgendwie ist mir zu hoch, was du vorhast :| |
Re: shellexecute nach createmutex
closeHandle hat mir insofern geholfen, dass der mutex irgendwie das ausführen von dem programm (per winexec UND shellexecute) verhindert hat. durch closehandle wird er nun gekillt, das programm erfolgreich mit winexec gestartet und ein neuer mutex, der das programm diesmal findet, erstellt.
ich denke jedenfalls, das es so ist, jedenfalls funzt es nun ... mfg, eyeless |
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:35 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