2017-05-19 4 views
-1

Ich versuche, einen kleinen "Auto-Clicker" Bot zu erstellen.C# kann den Cursor nicht in ein anderes Fenster setzen

Ich muss den Cursor an einer bestimmten Position in einem bestimmten Fenster platzieren.

Mit Cursor.Position oder [DllImport("User32.dll", EntryPoint = "SetCursorPos")] private static extern bool SetCursorPos(int X, int Y); Werken überall, aber nicht in diesem Fenster.

Irgendwelche Ideen? :)

// bearbeiten

[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); 
    } 

Greets

+0

Können Sie den Code anzeigen, der nicht wie erwartet funktioniert? Ein reproduzierbares Beispiel (einschließlich der Anwendung, deren Fenster dies nicht funktioniert) wird helfen, schneller eine Antwort zu erhalten. –

+0

@RufusL Hey, das Fenster, das nicht funktioniert, ist ein Spiel. Ich versuche einen kleinen Level-Bot zu schreiben. Ich denke, das Problem ist der Fokus, weil ich die Maus auf eine beliebige Position auf dem Bildschirm oder Browser setzen kann. Danke :) – Jannick

+0

@RufusL Ich habe den Thread bearbeitet, aber es ist nichts besonderes. Ich simplay rufen Sie die Methode auf, wenn ein bestimmtes Pixel gefunden wurde. Ich weiß, dass das Pixel gefunden wurde, also kann das nicht das Problem sein :) – Jannick

Antwort

0

Ich nehme an, Sie versuchen, dies in Windows zu tun?

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

Sobald Sie Fokus haben, können Sie dann Ihre Mausbewegung ausführen. Hier ist ein Code-Schnipsel aus einer meiner Maus Mover Bots:

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); 

Hoffentlich ist das, was Sie versuchen zu erreichen!

+0

Leider ist es nicht für eine Windowsforms. Es ist für ein Spiel. Ich versuche einen Level-Bot zu schreiben. Ich suche nach einem Pixel in einer bestimmten Farbe und dann möchte ich die Maus zu diesem Pixel bringen und klicken. Ich schätze, du hast Recht mit dem Fokus. Wie kann ich den Fokus auf ein anderes Fenster setzen? Vielen Dank für die Antwort :) – Jannick

+0

Es sieht aus wie Sie versuchen, dies in Unity richtig zu tun? Es sieht so aus, als hätte dieser Benutzer das gleiche Problem. https://forum.unity3d.com/threads/how-to-set-focus-activation-to-unity-player-window.225952/ Dieser Teil kann ein guter Ausgangspunkt sein: [DllImport ("user32.dll") ] static extern uint GetActiveWindow(); –

+0

Kein Visual Studio (Windows Forms App), aber ich kann die Einheit auch verwenden. Ich werde das versuchen, danke :) Ich werde Sie wissen lassen, ob es in einigen Minuten funktioniert hat. – Jannick

Verwandte Themen