Function GetWindowFromID(ProcessID : Cardinal): THandle;
Var TestID : Cardinal;
TestHandle : Thandle;
Begin
Result := 0;
TestHandle := FindWindowEx(GetDesktopWindow, 0, Nil, Nil);
While TestHandle > 0 do Begin
If GetParent(TestHandle) = 0 Then
GetWindowThreadProcessId(TestHandle, @TestID);
If TestID = ProcessID Then Begin
Result := TestHandle;
Exit;
End;
TestHandle := GetWindow(TestHandle, GW_HWNDNEXT)
End;
End;