フォームを完成させるための WPF/C# アプリケーションに取り組んでいます。TapTip キーボード (TabTip.exe / windows 8 デスクトップ用のメトロのようなキーボード) が最小化されているか、windows 8 で表示されていないかどうかを判断する方法を見つけようとしています。
OSK キーボード (osk.exe / Windows アクセシビリティ オンスクリーン キーボード) が最小化されているかどうかは検出できましたが、TabTip キーボードでは同じプロセスが機能しないようです。
キーボードが最小化されているかどうかを検出するには I:
1. キーボードのプロセスを見つける
2. MainWindowHandle を取得する
3. WINDOWPLACEMENT の showCmd プロパティを使用する (MainWindowHandle を使用して検出)
4. showCmd 値を使用してウィンドウが最小化されているかどうかを判断する
私が遭遇した問題は次のとおりです:
- TabTip プロセスの MainWindowHandle が 0 です (そのため、それを使用して WINDOWPLACEMENT 情報を見つけることができません)
- TabTip が開いていて最小化されている場合、WINDOWPLACEMENT.showCmd の値は同じです
TabTip ウィンドウのハンドルを見つけるために、ENUMWINDOWS を使用してすべてのウィンドウ ハンドルを取得し、GETWINDOWTHREADPROCESSID を使用してプロセス ID を取得し、ID を TabTip プロセス ID と比較しました。
これについての助けをいただければ幸いです。また、これは私の最初の投稿です。私はこれを正しく行ったと思いますが、そうでない場合は修正方法を教えてください。