使用EnumWindows枚举窗口时,我的桌面上每个打开的窗口都会有数百个句柄而不是一个句柄。
首先,我很好奇这是否是正确的行为。
其次,尝试在启动进程之前和之后打开窗口之间的区别会返回15-20个新句柄。我想知道是否有办法根据某些标志过滤这些,我真的只需要主窗口句柄。
有什么想法吗?
答案 0 :(得分:1)
要获取流程的主窗口,请使用Process.MainWindowHandle
property。
要回答你的问题,你可以准确地看到所有句柄都在使用Spy ++ 简而言之,许多应用程序将创建隐藏的窗口来运行消息循环。
答案 1 :(得分:0)
您可以通过选中IsWindowVisible()
&来验证枚举回调。忽略不可见的系统/消息接收器窗口。