レガシ プログラムでマウスがクリックされたときのキーストロークをシミュレートするにはどうすればよいですか。ノート!プログラムは、マウスがクリックされたことを認識していない可能性があります
私は実験しています
IntPtr module = LoadLibrary("user32.dll");
_mouseHookHandle = (HookType.MouseLowLevel, _mouseDelegate, module, 0);
から -1 を返すようにテストしHookProc
ます。ただし、そうするときはSendInput
、入力をアプリケーションに送信しないでください。から結果を返すと CallNextHookEx
、SendInput
動作しますが、マウス クリックはレガシー アプリケーションに送信されます。
バックグラウンド
特別なキーボードで制御されるプログラムがあります。キーボードのキーを押すと、ESC と文字のシーケンスが送信されます。次に、プログラムは、マウスが画面上に置かれたものに基づいて操作を実行します。
この特別なキーボードがなくてもアプリケーションを制御できるように、オンスクリーン キーボードを開発しています。ユーザーは、マウスでスクリーン キーボードのボタンを選択します。次に、コマンドを送信したいオブジェクトにマウス ポインタを移動し、もう一度クリックします。ただし、マウスクリックはプログラムに渡されない可能性があり、プログラムはマウスクリックで別の操作を実行します。