Mausbewegung

  • hallo liebe community.
    wiedermal habe ich frage. hoffe ihr könnt sie mir wieder einfach und verständlich beantworten^^

    also folgendes:

    $mousepos=MouseGetPos() ;Ermittle die aktuelle Mausposition
    MouseClick("left", $Mousepos[0], $Mousepos[1], 2) ; Klicke 2 mal auf die aktuele Stelle mit links

    und jetzt möchte ich die maus z.b. um ein zentimeter nach rechts bewegen.
    ich weiss das der befehl so oder so ähnlich aussehen muss:

    MouseMove( X-Koordinate, Y-Koordinate, Geschwindigkeit)

    in meinem fall würde sich ja nur die x koordinate verändern, und die y koordinate bleibt so wie mit mousepos ermittelt
    wie kann ich das jetzt realiesieren. am einfachsten wäre es denke ich wenn mann wüsste wieviele pixel nebeneinander 1 cm ergeben oder?

    aber wie trage ich das dann in den mousemove befehl ein? bitte um hilfe. ich hoffe man versteht mein problem. danke

  • [autoit]

    $mousepos=MouseGetPos() ;Ermittle die aktuelle Mausposition
    MouseClick("left", $Mousepos[0], $Mousepos[1], 2) ; Klicke 2 mal auf die aktuele Stelle mit links
    MouseMove( $Mousepos[0]+40, $Mousepos[1], 1)

    [/autoit]


    Du musst also nur den aktuellen Wert mit der Anzahl der Pixel, um die die Maus verschoben werden soll addieren.

  • ok danke schonmal für die antworten. ok das könnt ich mir ja dann bei mir ausprobieren wieviel pixel ein cm sind.

    jetzt zur anderen möglichkeit. wenn ich die koordinaten auslesen soll brauch ich ja ein extra kleines program. mit dem ich vorher die stelle anpeile und mir die koordinaten dann hole.
    wie würde dieses kleine programm zum auslesen aussehen?

    also quasi:
    starte bei tastendruck 8
    lese die koordinate aus wo sich die maus gerade befindet
    und gebe mir diese in eine textbox. (ich glaub sowas nennt sich gui) aus
    beende mit tastendruck 9

    aber das mit guibox und ausgabe bekomm ich nicht hin. beschäftige mich ja erst gestern mit programmieren^^

  • Du kannst es dir in einer Gui anzeigen lassen, aber wenn du dir in der einen Box nur die Koordinaten anzeigen lassen willst, ist eine MsgBox besser:

    [autoit]

    $Mousepos=MouseGetPos()
    MsgBox(64, "Mausposition", "X: "&$Mousepos[0]&@CR&"Y: "&$Mousepos[1])

    [/autoit]
  • ok danke. wollt jetzt das programm schreiben zum auslesn und ausgeben:

    #include <Misc.au3>
    If _IsPressed("38") Then
    $Mousepos=MouseGetPos()
    MsgBox(64, "Mausposition", "X: "&$Mousepos[0]&@CR&"Y: "&$Mousepos[1]
    If _IsPressed("39") Then Exit

    irgendwo am ende ist ein fehler :(

  • [autoit]

    #include <Misc.au3>
    If _IsPressed("38") Then
    $Mousepos=MouseGetPos()
    MsgBox(64, "Mausposition", "X: "&$Mousepos[0]&@CR&"Y: "&$Mousepos[1]
    EndIf
    If _IsPressed("39") Then Exit

    [/autoit]


    Das EndIf hat gefehlt ;) Außerdem empfehle ich dir, dass in eine While Schleife zu packen (außer das #include), weil ansonsten du nur ~1 sek hast um x zu drücken ;)

  • #include <Misc.au3>
    While 1
    If _IsPressed("38") Then
    $Mousepos=MouseGetPos()
    MsgBox(64, "Mausposition", "X: "&$Mousepos[0]&@CR&"Y: "&$Mousepos[1]
    EndIf
    If _IsPressed("39") Then Exit
    wend

    geht net, ich verzweifel :(

  • 1 Sekunde 8o :rofl:

    [autoit]

    #include <Misc.au3>
    $a = TimerInit()
    If _IsPressed("38") Then
    $Mousepos=MouseGetPos()
    MsgBox(64, "Mausposition", "X: "&$Mousepos[0] & @CR & "Y: " & $Mousepos[1])
    EndIf
    $b = TimerDiff($a)
    MsgBox(0,"Zeit",$b)
    If _IsPressed("39") Then Exit

    [/autoit]


    ^^

    mfg Ubuntu

  • [autoit]

    #include <Misc.au3>

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

    While 1
    If _IsPressed("38") Then
    $Mousepos=MouseGetPos()
    MsgBox(64, "Mausposition", "X: "&$Mousepos[0] & @CR & "Y: " & $Mousepos[1])
    EndIf
    $b = TimerDiff($a)

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

    If _IsPressed("39") Then Exit
    Wend

    [/autoit]


    Bitte.
    Du musst nur ne While Schleife rein machen.

    mfg Ubuntu

  • Warum soll dieser Code nicht gehen? :

    [autoit]

    #include <Misc.au3>
    While 1
    If _IsPressed("58") Then
    $Mousepos=MouseGetPos()
    MsgBox(64, "Mausposition", "X: "&$Mousepos[0]&@CR&"Y: "&$Mousepos[1])
    EndIf
    If _IsPressed("59") Then Exit
    wend

    [/autoit]

    Bei mir geht der einwandfrei.

    Übrigens: 38 ist 8 und nicht X. X ist 58, Y ist 59.

  • Er geht ja :rolleyes:
    Ich wollte nur sagen das du in den Code, zu dem dein Kommentar "hä" war einfach nur eine While schleife hättest hinzufügen müssen.
    Wie Inelunki erwähnt hat ^^

    mfg Ubuntu

  • Du hast in deinem Post eine Klammer vergessen. Wahrscheinlich fehlt die auch in deinem Programm. Versuche nochmal meins.
    Fehlende Klammer ist in rot gekennzeichnet: