Programmieren - alles kontrollieren 4.941 Themen, 20.708 Beiträge

Wie erfahre ich den Dateinamen einer gestarteten Anwendung??

McMorning / 3 Antworten / Baumansicht Nickles

Hi Leute,
Tja, ich habe hier ein kleines Problem das folgendermaßen aussieht:
Ich habe mir aus Spaß mal ein kleines Programm unter Delphi 3 geschrieben, daß mir alle Window-Handles plus der WindowText in eine Liste schreibt. Außerdem kann ich einen Punkt aus der Liste auswählen und dieses Fenster 'minimieren' und 'wiederherstellen'.
Dabei habe ich festgestellt das auf meinem Computer eine ganze Menge mehr Programme laufen als ich geglaubt habe, da diese auch nicht in der Liste nach druck auf Strg-Alt-Entf erscheinen oder in der Registry oder sonst wo auftauchen. Dabei befindet sich auch ein Programm das ich von meinem Computer verbannt haben möchte, doch leider weiß ich nicht wie der Dateiname von dem Programm ist und nun suche ich eine Möglichkeit wie ich vom Handle an den Dateinamen komme, falls also jemand eine Idee hat den schreibt bitte.
Gruß McMorning
P.S. Ist mir egal ob die Lösung in Delphi, C oder C++ ist, hauptsache ich kann den Kram endlich abschießen! (McMorning)

Antwort:
die GetModuleFileNameEx() api sollte eigentlich das tun, was du willst.
WM_HOPETHISHELPS
thomas woelfer
(thomas woelfer)

Antwort:
Hi Thomas,
Die einzige Funktion die mir die Win32 Programmer's Reference nennt ist
GetModuleFileName(hModule: Integer, lpFilename: PChar, nSize: Integer)
Doch wenn ich hier als hModule das Window-Handle übergebe bekomme ich als Fehlermeldung per GetLastError() denn Code 87 zurück was nach meiner Liste ROR_INVALID_PARAMETER bedeutet. Was für ein Handle soll ich denn jetzt übergeben??
WM_HOPETHISHELPS = FALSE
McMorning
(McMorning)

Antwort:
das hModule ist _nicht_ das window-handle, sondern das instance-handle der anwendung.
WM_HOPETHISHELPS
thomas woelfer
(thomas woelfer)

bei Antwort benachrichtigen
thomas woelfer McMorning „Wie erfahre ich den Dateinamen einer gestarteten Anwendung??“
Optionen

die GetModuleFileNameEx() api sollte eigentlich das tun, was du willst.
WM_HOPETHISHELPS
thomas woelfer
(thomas woelfer)

this posting contains no tpyos.
bei Antwort benachrichtigen
McMorning thomas woelfer „Wie erfahre ich den Dateinamen einer gestarteten Anwendung??“
Optionen

Hi Thomas,
Die einzige Funktion die mir die Win32 Programmer's Reference nennt ist
GetModuleFileName(hModule: Integer, lpFilename: PChar, nSize: Integer)
Doch wenn ich hier als hModule das Window-Handle übergebe bekomme ich als Fehlermeldung per GetLastError() denn Code 87 zurück was nach meiner Liste ROR_INVALID_PARAMETER bedeutet. Was für ein Handle soll ich denn jetzt übergeben??
WM_HOPETHISHELPS = FALSE
McMorning
(McMorning)

bei Antwort benachrichtigen
thomas woelfer McMorning „Wie erfahre ich den Dateinamen einer gestarteten Anwendung??“
Optionen

das hModule ist _nicht_ das window-handle, sondern das instance-handle der anwendung.
WM_HOPETHISHELPS
thomas woelfer
(thomas woelfer)

this posting contains no tpyos.
bei Antwort benachrichtigen