1

SendMessage は、トリガーするイベントの処理が完了するまでブロックされるため、ターゲット プログラムでユーザーのクリックをシミュレートするために SendMessage を使用する必要があります。この理由は、このブロックにより、クリックの結果としてダイアログが開いたかどうかを検出する機会が得られるためです。現在の私の問題は、モデル ダイアログを開くモックアップ フォームのボタンで WM_LBUTTONDOWN メッセージと WM_LBUTTONUP メッセージを連続して使用してクリックを機能させることはできますが、標準の Windows アプリのメニューやメニュー項目では機能させることができないことです (メモ帳)。機能する方法でメニュー項目のクリックを実行する機能を取得するための助けをいただければ幸いです。それがメニュー項目であるかどうかは既に検出できますが、SendMessage を使用してブロックしてクリックをシミュレートできる必要があります。

乾杯

ロス

4

1 に答える 1

2

残念ながら、 win32フックに関するこのページには、

マウスとキーボードの入力をシミュレートします (WH_JOURNALPLAYBACK)。フックは、これらのアクティビティをシミュレートするための唯一の信頼できる方法を提供します。メッセージを送信または投稿してこれらのイベントをシミュレートしようとすると、Windows 内部でキーボードまたはマウスの状態が更新されないため、予期しない動作が発生する可能性があります。フックを使用してキーボード イベントまたはマウス イベントを再生する場合、これらのイベントは実際のキーボード イベントまたはマウス イベントとまったく同じように処理されます。

そのため、WH_JOURNALRECORDand WH_JOURNALPLAYBACK?

于 2009-04-29T07:07:20.383 に答える