Ich hab schon einige Bsp. zu dem Thema gefunden, jedoch nichts womit
ich was anfangen kann.
Hier ist eine von den Proceduren die ich zu tausenden gefunden hab.
Ich will aber von EINEM Handle, EINEN Dateinamen erhalten.
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20:
| procedure CreateWin9xProcessList(List: TStringList); var hSnapShot: THandle; ProcInfo: TProcessEntry32; begin if List = nil then Exit; hSnapShot := CreateToolHelp32Snapshot(TH32CS_SNAPPROCESS, 0); if (hSnapShot <> THandle(-1)) then begin ProcInfo.dwSize := SizeOf(ProcInfo); if (Process32First(hSnapshot, ProcInfo)) then begin List.Add(ProcInfo.szExeFile); while (Process32Next(hSnapShot, ProcInfo)) do List.Add(ProcInfo.szExeFile); end; CloseHandle(hSnapShot); end; end; |
So hab ich die Procedure abgeändert :
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16:
| Function GetExeByHandle(Handle : HWND): String; var hSnapShot: THandle; ProcInfo: TProcessEntry32; begin hSnapShot := CreateToolHelp32Snapshot(TH32CS_SNAPPROCESS, 0); if (hSnapShot <> THandle(-1)) then begin ProcInfo.dwSize := SizeOf(ProcInfo); if (Process32First(hSnapshot, ProcInfo)) then begin Result := ProcInfo.szExeFile; end; CloseHandle(hSnapShot); end; end; |
Jetzt wird zwar noch nicht die Exe-Datei zu meinen Handle angezeigt,
aber ich hab erwartet das Zumindest etwas zurückgegeben wird. Aber
es wird immer "" zurückgegeben. Das Versteh ich nicht. Bitte helft mir!
Moderiert von
UGrohne: Code- durch Delphi-Tags ersetzt.