通知
すべてクリア
2012年11月29日 4:14 PM
keybd_eventやSendInputなどのAPIを使用するとキーメッセージを発生させることができ
ますが、キーボードフックなどでメッセージを監視している時に、そのメッセージがユー
ザーが「実際にキーを操作したもの」なのか「keybd_eventなどを使用してシミュレート
したもの」なのかを判別することはできるのでしょうか?
現在、ソフトキーボード系のソフトを開発しているのですが、AutoHotKeyというソフトで
ショートカットキーを作成(例えば、Emacs風のキーバインドを設定する)している場合
に、こちらのソフトが誤動作してしまう現象が起きています。
もし、AutoHotKeyが発行したキーメッセージならそれをスルーできるので、誤動作を防げ
るように思っています。
あるいは、ユーザーが[Ctrl]キーを押している時に、何らかのソフトがkeybd_eventを使
用して、[Ctrl]キーを離す操作を行ったとします。
この時、GetAsyncKeyState()を使って判定を行うと、実際には押しているのに、離してい
ると判定されます。これを「押している」と判定する方法はあるのでしょうか?