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