16,748
社区成员
发帖
与我相关
我的任务
分享
function GetHWndByPID(const hPID: THandle): THandle;
var
PID: DWORD;
hWnd: THandle;
Capt: array[0..255] of Char;
begin
Result := 0;
if hPID = 0 then Exit;
hWnd := FindWindow(nil, nil);
while (hWnd <> 0) do
begin
if (GetWindowText(hWnd, Capt, 255) <> 0) and
IsWindowVisible(hWnd) and // (not IsIconic(WND)) //这里的条件根据需要来调整。
IsWindowEnabled(hWnd) then
begin
GetWindowThreadProcessID(hWnd, @PID);
if (PID = hPID) then
begin
Result := hWnd;
Exit;
end;
end;
hWnd := GetWindow(hWnd, GW_HWNDNEXT);
end;
end;