我正在开发一个用于填写表格的 WPF/C# 应用程序。我正在尝试找到一种方法来确定 TapTip 键盘(TabTip.exe / Windows 8 桌面的 Metro 类键盘)是否在 Windows 8 中最小化/不可见。
我已经能够检测到 osk 键盘(osk.exe / windows 屏幕键盘)是否被最小化,但相同的过程似乎不适用于 TabTip 键盘。
检测键盘是否最小化我:
1. 查找键盘的进程
2. 获取 MainWindowHandle
3. 使用 WINDOWPLACEMENT 的 showCmd 属性(使用 MainWindowHandle 找到)
4. 使用 showCmd 值确定窗口是否最小化
我遇到的问题是:
- TabTip 进程的 MainWindowHandle 为 0(所以我不能用它来查找 WINDOWPLACEMENT 信息)
- 当 TabTip 打开并最小化时,WINDOWPLACEMENT.showCmd 的值是相同的
为了找到 TabTip 窗口的句柄,我使用 ENUMWINDOWS 获取所有窗口句柄,使用 GETWINDOWTHREADPROCESSID 获取进程 id,然后将 id 与 TabTip 进程 id 进行比较。
对此的任何帮助将不胜感激。这也是我的第一篇文章。我认为我做对了,但如果不是,请告诉我如何解决它。