2017-05-19 8 views
-1

小さな "オートクリッカー"ボットを作成しようとしています。C#は別のウィンドウにカーソルを設定できません

特定のウィンドウの特定の位置にカーソルを置く必要があります。そのウィンドウにはどこにでもなく動作します Cursor.Positionまたは [DllImport("User32.dll", EntryPoint = "SetCursorPos")] private static extern bool SetCursorPos(int X, int Y);を使用して

アイデア? :)

//編集

[DllImport("User32.dll", EntryPoint = "SetCursorPos")] 
    private static extern bool SetCursorPos(int X, int Y); 

    private void OnPixelFound() { 
     LblPoint.Text = "x: " + foundPixelPos.X + " | y: " + foundPixelPos.Y; 
     SetCursorPos(foundPixelPos.X, foundPixelPos.Y); 
    } 

は、私はあなたがwindowsformsでこれをやろうとしていると仮定

+0

期待どおりに機能しないコードを表示できますか?再現可能な例(ウィンドウが動作していないアプリケーションを含む)は、より迅速に回答を得るのに役立ちます。 –

+0

@RufusLねえ、動作していないウィンドウはゲームです。私は小さなレベルのボットを書こうとしています。私は画面やブラウザ上の任意の位置にマウスを置くことができるので、問題が焦点であると思います。 ありがとうございました:) – Jannick

+0

@RufusLスレッドを編集しましたが、何も特別なものではありません。私は、特定のピクセルが見つかったときにメソッドを呼び出すことをsimplayします。私は、ピクセルが見つかったので、これは問題ではないことを知っています:) – Jannick

答えて

0

挨拶しますか?

Form2 f2 = new Form2(); 
    f2.Show(); 
    this.Focus(); 

フォーカスを取得したら、マウスの移動機能を実行できます。ここに私のマウスムーバーのボットのコードスニペットがあります:

this.Cursor = new Cursor(Cursor.Current.Handle); 
     Cursor.Position = new Point(Cursor.Position.X - 50, Cursor.Position.Y - 50); 
     Cursor.Clip = new Rectangle(this.Location, this.Size); 

これはあなたが達成しようとしているものです。

+0

残念ながら、それはwindowsformsのではありません。それはゲームのためです。レベルボットを書こうとしています。私は特定の色のピクセルを探しています。そして、マウスをこのピクセルに移動してクリックします。私はあなたが焦点を当てていると思います。どのように他のウィンドウにフォーカスを置くことができますか? ありがとうございました:) – Jannick

+0

Unityでこれを行うのは正しいですか?このユーザーにも同じ問題があるようです。 https://forum.unity3d.com/threads/how-to-set-focus-activation-to-unity-player-window.225952/この部分は良い出発点です:[DllImport( "user32.dll") ] static extern uint GetActiveWindow(); –

+0

Visual Studio(Windowsフォームアプリケーション)はありませんが、ユニティを使用することもできます。試してみてください。ありがとうございます。 – Jannick

関連する問題