0

私が知りたいのは、クローズド ソースでパブリック API を持たない GUI アプリに入力を与える方法です。

より簡潔にするために、ソリティアを開いて、プログラムを介してそれをプレイしたいとしましょう。または、基本的なことを言うと、ボタン付きの GUI アプリがあり、別のプログラムでそれをクリックしたいとします。

質問が少し漠然としていることは承知していますが、それが私が表現できる最高のものです。より具体的にするために、編集やコメントを手伝ってください。

4

2 に答える 2

1

調査しSendInput()ます。マウスの動きとキーの押下をシミュレートするために使用できます。

GUI を使用して Windows アプリケーションをEnumWindows()見つけるには、特定のタイトルのウィンドウを見つけるために使用できます。これにより、ウィンドウ ハンドルが提供されます。そのウィンドウにフォーカスを与えるには、次のことができます。

  • を介してウィンドウハンドルを取得しますEnumWindows()
  • GetWindowRect()ウィンドウの四角形の座標を取得するために使用します
  • を使用してウィンドウの境界内にマウスを移動し、 を使用SendInput()してマウス クリックをシミュレートします。SendInput()

私はこれを一度やったことがありますが、正しくするのは腹立たしいほど難しいです。プログラムを開始したら、手の上に座ってください。マウスやキーボードには触れないでください。

Linuxでこのようなことを行う方法については知りません

于 2012-09-11T08:29:58.267 に答える
0

Linux の X11 アプリであると仮定すると、プロセスを名前付きパイプの一方の端に接続し、X-Input イベントをパイプのもう一方の端にエコーすることができます。

于 2012-09-12T02:22:25.150 に答える