Ich habe mich bemüht, mich
hieran orientiert und es
scheinbar zum Laufen bekommen:
Delphi-Quellcode:
Function FindHandle(Const ProcessId: THandle): HWND;
Function EnumWindowsProc(hWnd: HWND; lParam: LPARAM): BOOL; Stdcall;
Begin
TList(lParam).Add(Pointer(hWnd));
Result:=True;
End;
Var
hList : TList;
PID : DWord;
Begin
Result:=0;
hList:=TList.Create;
Try
EnumWindows(@EnumWindowsProc, LPARAM(hList));
While (hList.Count > 0) Do
Begin
If (GetWindowThreadProcessId(HWND(hList.Items[0]), @PID) > 0) And
(ProcessId = PID) Then
Begin
Result:=HWND(hList.Items[0]);
Break;
End;
hList.Delete(0);
End;
Finally
hList.Free;
End;
End;
FindHandle bleibt aber immer 0. Was mache ich denn nun wieder verkehrt?