ich weiss leider nicht mehr, woher ich die 2. Procedure her habe.
die 1. Procedure hab ich
hieraus gebastelt.
ganz sicher bin ich nicht, ob ich das richtige
Handle hab.
Wie müsste das richtigerweise aussehen?
[edit]
Uups - ich hab was übersehen:
das
Handle, dass ich mir speichere wandel ich erst noch um:
Delphi-Quellcode:
function PHandle_to_WHandle(const PHandle: Cardinal): HWND;
function EnumWindowsProc(hWnd: HWND; lParam: LPARAM): BOOL; stdcall;
begin
TList(lParam).Add(Pointer(hWnd));
Result := True;
end;
var
i : Integer;
List : TList;
ProcessId: DWORD;
begin
Result := 0;
If PHandle <= 0 then
exit;
List := TList.Create;
try
If EnumWindows(@EnumWindowsProc, Integer(List)) then
for i := 0 to Pred(List.Count) do
begin
If GetWindowThreadProcessId(Integer(List.Items[i]), ProcessId) > 0 then
If GetProcessId(PHandle) = ProcessId then
begin
Result := HWND(List.Items[i]);
break;
end;
end;
finally
FreeAndNil(List);
end;
end;
Und erst mit dem
Handle geh ich auf die anderen 2 Proceduren
mfg
Helmi
>> Theorie ist Wissen, dass nicht funktioniert - Praxis ist, wenn alles funktioniert und keiner weiss warum! <<