EnumWindows的问题

时间:2010-06-03 22:15:50

标签: c# winapi

使用EnumWindows枚举窗口时,我的桌面上每个打开的窗口都会有数百个句柄而不是一个句柄。

首先,我很好奇这是否是正确的行为。

其次,尝试在启动进程之前和之后打开窗口之间的区别会返回15-20个新句柄。我想知道是否有办法根据某些标志过滤这些,我真的只需要主窗口句柄。

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

要获取流程的主窗口,请使用Process.MainWindowHandle property

要回答你的问题,你可以准确地看到所有句柄都在使用Spy ++ 简而言之,许多应用程序将创建隐藏的窗口来运行消息循环。

答案 1 :(得分:0)

您可以通过选中IsWindowVisible()&来验证枚举回调。忽略不可见的系统/消息接收器窗口。