我对 Windows API 很陌生,我正在尝试查找任务栏中出现的所有窗口的句柄。
到目前为止,我已经做到了:
- 获取所有窗口的句柄
- 获取窗口标题
- 检查窗口是否可见
- 检查窗口是否存在
- 最小化窗口
- 获取窗口的子窗口
- 获取桌面窗口
我尝试获取桌面窗口的所有子窗口,这给了我近 900 个窗口句柄!因此,我尝试通过仅获取可见窗口和标题长度超过 0 个字符的窗口来过滤它们,但我仍然离目标很远 - 有 68 个窗口?
那么,Win API 专家能否告诉我如何执行此操作:-)
,并可能解释一下为什么有这么多窗口?
编辑:
private static bool HasAppWindowStyle(IntPtr handle)
{
return (GetWindowLong(handle, GWL_EXSTYLE) & WS_EX_APPWINDOW) != 0;
}
最佳答案
你看到了吗FindWindowEx样本?您也可以过滤它们以在其上显示文本,我认为您看到的窗口是 Detop 项目(我不确定),但从桌面上删除一些项目并查看更改。
关于c# - 获取任务栏中所有窗口的句柄,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4390191/