に発射ません:MOUSE_EVENTは、私はプログラム的に左ボタンのマウスクリックをシミュレートしようとしています特定のアプリケーション(C#の)
[DllImport("user32.dll")]
static extern bool SetCursorPos(int x, int y);
[DllImport("user32.dll")]
public static extern void mouse_event(int dwFlags, int dx, int dy, int cButtons, int dwExtraInfo);
public const int MOUSEEVENTF_LEFTDOWN = 0x02;
public const int MOUSEEVENTF_LEFTUP = 0x04;
public static void LeftMouseClick(int xpos, int ypos)
{
SetCursorPos(xpos, ypos);
mouse_event(MOUSEEVENTF_LEFTDOWN, xpos, ypos, 0, 0);
System.Threading.Thread.Sleep(1000);
mouse_event(MOUSEEVENTF_LEFTUP, xpos, ypos, 0, 0);
}
カーソルが画面上の適切な位置に移動しますが、クリックが発射されていません。何かご意見は?
編集:私はいくつかのテストを行いました。私が使用している方法は問題ではないようです(スチーム、Skypeなどのアプリケーションをクリックします)。カーソルが特にクリックしたいアプリケーション(アンドロイドエミュレータ)の上にあるときにクリックメソッドを呼び出すと、何も起こりません。マウスカーソルがその場所に移動しますが、クリックしません...もう一度別のエミュレータをテストしようとしています。
あなたは 'OR'dイベントを送るつもりはありませんか?私はアップとダウンが異なる時に起こるだろうと思うだろう – BradleyDotNET
@ブラッドリードットコム私はそれをまだ編集していない別のイベントに編集した。 – binbin
イベントは、フォーカスのあるスレッドのキューに挿入されます。それはどのプログラムですか?誤った入力は実際の問題の解決策ではない可能性があります。たとえそれがあなただったとしても、SendInputでそれを行うことを意図しています。あなたはその文書を読んでいないのですか? –