Maus bewegen in Anwendung

  • Hallo,
    ich habe ein kleines Script geschrieben mit dem ich in einer Anwendung (3D-Diagramm) nach bestimmten Pixel suche und er mir dann diesen bestimmten Bereich in die Mitte der Anwendung setzt.
    Die Anwensung funktioniert so, dass wenn ich die Maus bewege sich das Diagramm verschiebt, also müsste ich doch nur die gefundene Koordinate ansteuern?

    Das Problem aber ist er Steuert überall hin, aber nicht da hin wo ich will. Also das Diagramm bewegt sich wie Wild.
    Irgendwelche Ideen woran das liegen kann?

    LG, bin Neu hier

  • Ich habe nicht ganz verstanden was du meintest,
    benötigst du vlt einer dieser Funktionen?

    [autoit]

    WinMove() ; - Bewegt ein Fenster
    MouseMove() ; - Bewegt die Maus
    MouseGetPos() ; - Ermittelt die Position der Maus
    GUIGetCursorInfo() ; - Ermittelt die Position der Maus in einer GUI

    [/autoit]


    Wenn du eine Funktion nicht kennst klick den "befehl" einfach mal an, dann öffnet sich die Hilfe (im browser)

    Sind TV-Quizfragen zu einfach? A) Ja B) Harry Potter

    Spoiler anzeigen

    Ich gebe zu dieser Post hat wahrscheinlich nicht viel geholfen,
    aber ich versuche wenigstens zu helfen :rolleyes:

  • [autoit]


    ;Habe folgende Opt. ausprobiert, obs vielleicht daran liegt:
    ;AutoItSetOption("MouseCoordMode", 1)
    ;AutoItSetOption("GUICoordMode", 1)

    [/autoit][autoit][/autoit][autoit]

    Dim $cordinates = PixelSearch( 50, 300, 10030, 750, 0xDD1717, 10, 2)
    If Not @error Then
    $xmous = MouseGetPos(0)
    $ymous = MouseGetPos(1)

    [/autoit][autoit][/autoit][autoit][/autoit][autoit]

    MouseMove($xcord ,$ycord , 10)
    EndIf

    [/autoit]


    Danke für die Auflistung. Wie zu sehen bin ich schon soweit, dass es funktionieren sollte wenn ich zB ein Icon auf dem Desktop ansteuern will. Im Programm, indem das Script aber arbeiten soll geht da irgendetwas schief und er steuert zwar richtig an, wie ich debugt habe, blos verhält sich die Anwendung seltsam und bewegt sich dann doch wo anders hin.

    Also die Anwendung ist ein 3D Diagramm, welches man im Raum drehen kann.

  • [autoit]

    ;Habe folgende Opt. ausprobiert, obs vielleicht daran liegt:;AutoItSetOption("MouseCoordMode", 1)
    ;AutoItSetOption("GUICoordMode", 1)

    [/autoit][autoit][/autoit][autoit]

    Dim $cordinates = PixelSearch( 50, 300, 10030, 750, 0xDD1717, 10, 2)
    If Not @error Then
    $xmous = MouseGetPos(0)
    $ymous = MouseGetPos(1)

    [/autoit][autoit][/autoit][autoit][/autoit][autoit]

    MouseMove($xcord ,$ycord , 10)
    EndIf

    [/autoit]

    Das mit dem "MouseGetPos" kannst du vereinfachen.:

    [autoit]

    ;Habe folgende Opt. ausprobiert, obs vielleicht daran liegt:;AutoItSetOption("MouseCoordMode", 1)
    ;AutoItSetOption("GUICoordMode", 1)

    [/autoit][autoit][/autoit][autoit]

    Dim $cordinates = PixelSearch( 50, 300, 10030, 750, 0xDD1717, 10, 2)
    If Not @error Then
    $Pos = MouseGetPos()
    MouseMove($Pos[0] ,$Pos[1] , 10)
    EndIf

    [/autoit]


    MfG

  • Ein Problem mit PixelSearch ist das der Pixel in der Farbe mehrmals vorkommen kann.
    und somit wird das erste Pixel gefunden welches die die Farbe hat.
    Ich kann mir schlecht vorstellen was du genau machst, aber eine Alternative
    zu Pixelsearch ist -> ImageSearch * Klick*
    Die Funktion ist so ähnlich wie Pixelsearch aber sie sucht nicht nach einen bestimmten Pixel sondern nach einem Bild.

    Sind TV-Quizfragen zu einfach? A) Ja B) Harry Potter

    Spoiler anzeigen

    Ich gebe zu dieser Post hat wahrscheinlich nicht viel geholfen,
    aber ich versuche wenigstens zu helfen :rolleyes:

  • Danke, das mit der Vereinfacherung habe ich auch gewusst, weil ich andere Programmiersprachen behersche. :)

    Und ich hab ja debugt und er findet schon den richtigen Pixel, das stimmt schon :) Trotzdem Danke für die ImageSearch Funktion.

    Frage am Rande: Er fänt ja von links nach rechts an zu suchen und von oben nach unten. Kann man diese EInstellung auch verändern?
    Sollte klar sein was gefragt ist, trotzdem ein Beispiel: Es ist ein rotes Viereck gezeichnet und ich möchte die 4 Eck Koordinaten.


    Also ich versuch in dem Programm die Maus zu bewegen, sie ist aber nur im Programm zu sehen. Also ich muss ESC drücken um die Maus aus dem Programm bewegen zu können um es zB zu schließen.
    Also das Problem ist ja wenn ich versuche den Pixel im Programm anzusteuern bewegt er sich wie Wild aber nicht dahin wo ich will.

  • ich checks zwar nicht, aber vll hilft dir das:
    Hat das Programm die selbe auflösung iwe auch dein Dekstop? Nicht das er den pixel in der normalen auflösung findet, aber die auflösung wenn programm aktiviert ist anderst(und somit auch die koordinaten)?

  • ich checks zwar nicht, aber vll hilft dir das:
    Hat das Programm die selbe auflösung iwe auch dein Dekstop? Nicht das er den pixel in der normalen auflösung findet, aber die auflösung wenn programm aktiviert ist anderst(und somit auch die koordinaten)?


    OK, kann sowas wirklich sein, weil das wäre auch meiner Meinung nach die einzigste erklärbare Lösung... Ich probier mal bisschen rum...


    Frage am Rande: Bei PixelSearch fängt er ja von links nach rechts an zu suchen und von
    oben nach unten. Kann man diese EInstellung auch verändern?

    Sollte klar sein was gefragt ist, trotzdem ein Beispiel: Es ist ein
    rotes Viereck gezeichnet und ich möchte die 4 Eck Koordinaten.

  • Da du anscheinend kein echtes Interesse hast die Anwendung (3D Diagramm, welches man im Raum drehen kann) wirklich zuverlässig zu automatisieren, sonst hättest du sie benannt: Vote for Close

    mfg autoBert