Wie bekomme ich die Exe-Datei raus?

  • Themenstarter Themenstarter D@nger
  • Beginndatum Beginndatum
D

D@nger

Hallo,
ich schreibe gerade einen Taskmanager. Folgende Punkte habe ich schon bewerkstelligt:
-Taskid
-HWND
-Titel des Fensters

So, das geschieht mit folgenden Apis:

Visual Basic:
Private Declare Function GetDesktopWindow Lib "user32" () _
        As Long

Private Declare Function GetWindow Lib "user32" (ByVal hWnd _
        As Long, ByVal wCmd As Long) As Long
        
Private Declare Function GetWindowLong Lib "user32" Alias _
        "GetWindowLongA" (ByVal hWnd As Long, ByVal wIndx As _
        Long) As Long
        
Private Declare Function GetWindowTextLength Lib "user32" _
        Alias "GetWindowTextLengthA" (ByVal hWnd As Long) _
        As Long
        
Private Declare Function GetWindowText Lib "user32" Alias _
        "GetWindowTextA" (ByVal hWnd As Long, ByVal lpString _
        As String, ByVal cch As Long) As Long
               
Private Declare Function GetParent Lib "user32" (ByVal hWnd _
        As Long) As Long
        
Private Declare Function GetWindowThreadProcessId Lib "user32" _
        (ByVal hWnd As Long, lpdwProcessId As Long) As Long

Jetzt möchte ich aber gerne den Dateinamen des laufenden Programms haben, also so wie im Windows Taskmanager, bei Photoshop dann z.B. Photoshop.exe
Weiß jemand von euch wie das geht?

Vielen Dank schon mal
 
Hallo,
danke schon mal, aber wie kann ich dann jetzt z.B. die Datei Ixeplore.exe beenden?
 
Hallo,
also das ist ja wirklich nicht so einfach. Das Programm ist wirklich erste Sahne. Ich hatte bis jetzt nur den ApiViewer, der die Apis aber nicht erklärt, sondern nur aufgelistet hat. Mein Vorhaben ist eigentlich nur einige Tasks zu beenden und dafür muss eben ein Taskmanager her. Die Spalten Name (z.B. Photoshop.exe), Taskid (z.B. 1178) und Titel würden eigentlich schon reichen, doch bis jetzt habe ich nur name und Taskid, den Titel bekomme ich nicht raus, bzw. der wird anders ausgelesen.
 
Hi,

du kannst einzelne Titel aus der Registry auslesen. Leider ist diese Liste aber nicht vollständig, da nicht alle Programme eingetragen werden.

Schau mal in der Registry unter:
"HKEY_CURRENT_USER\Software\Microsoft\Windows\ShellNoRoam\MUICache"

Ansonsten habe ich bisher noch nichts gefunden. Zumindest nicht für VB.
 
Hallo,
danke aber ich habe die Lösung schon, habe jetzt aber wieder ein neues Problem :-)
 
Hallo,
also ich habs einfach so gemacht, dass ich die Exe-Namen (z.B. Photoshop.exe) in eine Liste mittels Api-Funktion geladen habe und in eine andere habe ich die Taskid geladen. Dann habe ich mittels einer For-Next-Schleife nach dem Programm gesucht und wenn es gefunden wurde habe ich den Eintrag in der anderen Listbox ausgelesen und den Task terminiert. Ist zwar nicht ganz elegant aber es funktioniert.
 
Zurück