![]() |
Erkennen ob eine EXE aktiv ist...
Hallo!
Wie kann ich ermitteln ob ein Programm/ eine Exe gerade aktiv ist? Ich möchte also z.B. erkennen können ob die c:\test\test.exe gerade läuft oder nicht. wie stelle ich das an :?: Besten Dank Ares |
Aus dem
![]() Zitat:
|
Danke, aber leider funktioniert es nicht...
Hallo!
Vielen Dank für die flotte Antwort. Ich habe die Funktion gerade an der Outlook.exe ausprobiert und leider klappt es nicht. Egal ob Outlook aktiv ist oder nicht bekommt H den Wert 1908 und das Ergbnis ist somit immer false... Der Pfad wird jedenfalls korrekt als 'E:\PROGRA~1\Office\Office10\OUTLOOK.EXE' übergeben. Woran kann es also liegen? Besten Dank Ares |
Versuch einfach mal nur "OUTLOOK"...
Chris PS: Ansonsten mal alle möglichen Handlenamen austesten... |
Hilft leider auch nicht...
Hallo!
Danke auch fürden tipp, aber das Ergebnis ist leider das gleiche. Nur ist H nun 65535 egal ob Outlook aktiv ist oder nicht. Bei anderen Programmen übrigens genau das selbe... Sorry, wenn ich mich jetzt besonders blöd anstelle aber wie genau teste ich denn alle Möglichen Handle durch? Ich hab leider keine genau Vorstellung davon was das ist oder welche Handlenamen es alles gibt... Besten Dank Ares |
Du probierst die, die theorethisch möglich wären. Versuche es mal mit MSOUTLOOK...
Chris |
Moin Zusammen,
also bei mir sähe die Funktion so aus:
Delphi-Quellcode:
Als AsExePath ist hier, logisch, der Pfad zur Datei anzugeben.
function IsRunning(const AsExePath : string): boolean;
var fsWork : TFileStream; begin Result := false; try fsWork := TFileStream.Create(AsExePath,fmOpenRead or fmShareExclusive); FreeAndNil(fsWork); except Result := true; end; end; Funktionsprinzip: Man versucht einen Filestream für exklusiven Zugriff zu öffnen. Dies geht schief, wenn das Programm läuft, da die Datei dann vom System gelockt ist, und nicht exklusiv geöffnet werden kann. Klappt es, wird der Filestream wieder freigegeben, und false zurückgeliefert. Eine andere Variante wäre es, zu versuchen die Datei zum Schreiben zu öffnen. Das sollte ebenso auf eine Exception auflaufen, wenn das Programm läuft. Das ist die Umkehrung einer MiniKompo, die ich hier in schon mal in einem Thread ( ![]() Leider kann ich die beiden Varianten zur Zeit nicht ausprobieren, aber es sollte funktionieren. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:49 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