タッチ イベントをマウス入力に変換する C++ アプリケーションが 1 つあります。SendInput API を使用 して、Windows 7 (32/64 ビット) システムでマウス イベントを送信しています。ユーザーがアプリケーションに文字を入力できるようにするために、組み込みの Windowsオンスクリーン キーボード (osk.exe)を使用しています。
カーソルが OSK ウィンドウのウィンドウ装飾 (タイトル バー、システム メニューなど) の上にあるときに発生するアプリケーションによって生成されるマウス ダウン イベントは、マウスをフリーズします。OSK がフォーカスを取得していることがわかります。私のアプリケーションは他のマウス イベントを送信し続けますが、OSK ウィンドウには影響しません。唯一の解決策は、システムに接続されている物理 USB マウスを押したり離したりすることです。
奇妙なことに、アプリケーションから OSK キーボード ボタンにマウス プレスを送信して文字を入力するために OSK を使用すると、正常に動作します。OSK ウィンドウを移動 (または閉じ) しようとすると、マウス操作がフリーズするだけです。
解決策として、以下を試しました:(1)アプリケーションのマニフェストファイルでuiAccess = trueにする(2)アプリケーションコードはすでに署名されています(3)アプリケーションは信頼できる場所に存在します
しかし、それでも問題が発生します。
アプリケーションを管理者として実行すると、正常に動作します。しかし、アプリケーションを「管理者として実行」として開始したくありません。
なにか提案を?