こんにちは、キーの押下を仮想的にシミュレートするために keybd_event を使用する ac# アプリケーションがあります。アプリケーションを実行すると、すべてのキーを押しても問題なく動作します。ただし、アプリケーションを閉じた後、キーボードのキーの一部がごちゃごちゃになり、特定のキーを押したときにデフォルトのコマンドが実行されません。
ありがとう。
プログラムで「押した」修飾キーを離すのを忘れたと思います。押すすべてのキーkeybd_event
のオプションで呼び出すようにしてください。KEYEVENTF_KEYUP
Ctrl
+を押す例を次に示しQ
ます。
keybd_event(VK_CONTROL, 0, 0, 0);
keybd_event(VK_Q, 0, 0, 0);
keybd_event(VK_Q, 0, KEYEVENTF_KEYUP, 0);
keybd_event(VK_CONTROL, 0, KEYEVENTF_KEYUP, 0);
最後の行を忘れると、それ以降のすべてのキー押下は、たとえユーザーが手動で行ったとしても、Ctrl
キーがまだ押されているかのように解釈されます。