【发布时间】:2014-01-20 10:53:14
【问题描述】:
我正在开发一个用于填写表单的 WPF/C# 应用程序。我正在尝试找到一种方法来确定 TapTip 键盘(Windows 8 桌面的 TabTip.exe / Metro-like 键盘)是否在 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 进行比较。
对此的任何帮助将不胜感激。这也是我的第一篇文章。我认为我做对了,但如果不是,请告诉我如何解决。
【问题讨论】:
标签: c# windows-8 keyboard touch on-screen-keyboard