1

まず第一に、これに対する言語固有の解決策があり、c++/c#/java などでのみ可能である場合は、そのように言ってください。どれを使用しても問題ありません。現在、バックグラウンドにあるアプリのボタンをクリックしようとしていますが、メッセージの送信/投稿を使用して「クリック」部分を管理できます。そのようです:

            SendMessage(Window, 0x201, 0, 700 * 0x10000 + 700);

ここで 0x201 はマウスの左ボタンを押した状態で、位置はおそらく 700, 700 であるはずです

ただし、そのメッセージを送信すると、700,700 ではなく、現在のマウス位置に基づいて動作をだまそうとしているアプリです。

これは、騙そうとしているアプリが現在のマウス位置を探しているためだと思います。それをだます方法はありますか?

4

1 に答える 1

1

でこれを実装するべきではありませんSendMessage。そこでのプロセスでは遅すぎます。システムはすでにあらゆる種類のものを処理しており、メッセージキューに到達すると送信するメッセージを決定しています。そこに生のクリックイベントを送信すると、さらに混乱するだけです。

代わりにSendInput Win32 API callを使用する必要があります。マウス (およびその他の入力デバイス) の動作をより高いレベルでエミュレートし、実際のマウスが原因であるかのように、結果として生じるメッセージをシステムが処理できるようにします。したがって、定義上、すべての人をだますことになります。だますことは何もないためです。マウスは、すべての意図と目的のために、指定された場所に実際に移動しました。

この目的のために、より簡単なmouse_event呼び出しを使用することもできますが、正式には非推奨であるため、推奨されSendInputます。

于 2013-05-22T23:13:26.083 に答える