アクティブではないアプリケーションでマウスの移動/クリック/キー押下をシミュレートする

StackOverflow https://stackoverflow.com/questions/806376

  •  03-07-2019
  •  | 
  •  

質問

マウスとキーボードのイベントをシミュレートする方法は知っていますが、ユーザーが行ったように動作するため、アクティブなウィンドウに影響します。必要なのは、これらの入力の1つをシミュレートすることですが、アクティブではないウィンドウ内でです。

最小化されているとは言いません。たとえば、msPaintとメモ帳があるとします。メモ帳はペイントの前にあります。また、ペイントウィンドウの特定の座標でマウスクリックをシミュレートする必要がありますが、アクティブに設定せずに、ユーザーがペイントの前面にあるメモ帳を使い続けることができるようにします。

これはまったく可能ですか? ありがとう!

役に立ちましたか?

解決

次の操作を実行できます。

1)イベントをシミュレートするウィンドウの HWND を取得します。これを行うには、 FindWindow 関数を使用できます。この関数は、2つのパラメーターを取ります。1つはウィンドウのクラス名( NULL を使用できます)、もう1つはウィンドウ(詳細については、MSDNのドキュメントを参照);

2) SendMessage 関数を使用して、目的のウィンドウにメッセージを送信します。パラメーターは、前に取得したウィンドウハンドル( HWND )、メッセージ(たとえば、 WM_KEYDOWN 、または WM_MOUSEMOVE WM_LBUTTONDOWN など)、メッセージの WPARAM WM_KEYDOWN の場合はキーの仮想キーコード)、最後に LPARAMメッセージの WM_KEYDOWN の場合は非常に複雑であり、MSDNで詳細を確認する必要があります)。

私の意見では、これはあなたがやろうとしていることに十分です。

他のヒント

もし、JAVAを知っていれば、ロボットクラスを使用できます。

  

このクラスは、テストの自動化、自動実行デモ、およびマウスとキーボードの制御が必要なその他のアプリケーションの目的で、ネイティブシステム入力イベントを生成するために使用されます

Javaロボットクラス

.netに似たようなものがありますか?

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top