1

我使用以下代码获得了一个窗口句柄:

var h: THandle;
...
h := FindWindow('MozillaWindowClass', NIL);

h 有效 (> 0)。

我如何知道这个窗口是否有任何子窗口?

我不能使用 FindWindowEx(),因为它需要一个类名。

我想在这里完成的是找出 MozillaWindowClass 窗口是属于 Thunderbird 还是 Firefox。看起来 Thunderbird 有一个没有子级的 MozillaWindowClass,但 Firefox 没有,所以这将是一种快速查找的方法。(我无法使用 CreateToolhelp32Snapshot() 获取进程名称,因为我的代码也需要在 Windows 2000 上运行)。

4

1 回答 1

6

确定窗口是否有任何子窗口的最简单方法是调用GetWindow传递GW_CHILD

function HasChildren(Window: HWND): Boolean;
begin
  Result := GetWindow(Window, GW_CHILD)<>0;
end;
于 2013-02-12T19:17:53.553 回答