SendMessageVisual C++ を介して、またはPostMessageVisual C++ で、キー プレス イベントを別のアプリケーションに送信したいと考えています。
F3を使用するような単一のキーをシミュレートできることを知っていSendMessage/PostMessageます。SHIFT+F3しかし、 を使用するようなキーの組み合わせを送信する方法がわかりませんSendMessage/PostMessage。
私は立ち往生しました。
SendMessage/PostMessage は、キー プレスの送信には適していません。PostMessage でキーボード入力をシミュレートできないを参照してください。
.. 入力メッセージをターゲット ウィンドウのキューにポストできたとしても、キーボード シフトの状態は更新されません。ウィンドウの背後にあるコードが
GetKeyState関数または関数GetAsyncKeyStateを呼び出すと、投稿されたメッセージが生成した偽の状態ではなく、「実際の」シフト状態が表示されます。この
SendInput関数は、Windows に入力を挿入するために設計されました。その関数を使用すると、少なくともシフト状態が正しく報告されます。
ご覧のとおり、レイモンドもすでに解決策を提供していますSendInput。代わりに使用してください。