mousemove Problem

  • Hallo,

    ich habe folgendes Problem:
    Ich möchte für einen älteren Menschen der sehr zittert
    und mit der Maus Probleme helfen.

    Das Ergebnis sollte so sein:
    Durch drücken auf der NumPad Tastatur 1-9
    soll die Maus automatisch an die Prosition langsam laufen.

    Das geht auch, nur mit den Positionen habe ich ein Problem
    Hier mal mein Aufbau:

    Spoiler anzeigen
    [autoit]


    #include <Misc.au3>

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

    ;die Tastaturbelegung

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

    ;_IsPressed("61");Numpad 1 = mousemove unten links
    ;_IsPressed("62");Numpad 2 = mousemove unten mitte
    ;_IsPressed("63");Numpad 3 = mousemove unten rechts

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

    ;_IsPressed("64");Numpad 4 = mousemove mitte links
    ;_IsPressed("65");Numpad 5 = mousemove mitte mitte
    ;_IsPressed("66");Numpad 6 = mousemove mitte rechts

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

    ;_IsPressed("67");Numpad 7 = mousemove oben links
    ;_IsPressed("68);Numpad 8 = mousemove oben mitte
    ;_IsPressed("69");Numpad 9 = mousemove oben rechts

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

    ;_IsPressed("60");Numpad 0 = Klick
    ;_IsPressed("20");Space = Start-Stop Move

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

    $size = WinGetPos("[active]")

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

    While 1
    If _IsPressed("61") Then ;Numpad 1
    ;mousemove($size[0],0,100)
    ElseIf _IsPressed("63") Then ;Numpad 3
    mousemove($size[1],0,100)
    endif

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

    WEnd

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

    wie ich nach unten oder Bildschirmmitte komme weiß ich nicht.

    Sollte also so laufen:

    Spoiler anzeigen


    Rechnertastatur

    789
    456
    123

    7 bewegt die Maus oben links 8 oben in die Mitte 9 oben rechts
    4 bewegt die Maus Mitte links 5 Bildschirmmitte 6 mitte rechts
    1 unten links 2 unten Mitte 3 unten rechts

    Space sollte Mousemove anhalten/starten...

    Meine Fragen:
    Wie kann ich die Positionen für den Bildschirm bestimmen?
    Wie kann ich per Space-Taste MouseMove anhalten und wieder starten?

    Würde mich freuen wenn ihr mit dabei helfen könnt.

    Liebe Grüße
    ;) Ilse

  • Hey,
    wär es nicht leichter es via HotKeySet zu machen?
    Desweiterem kannst du ja mal @DesktopWidth und @DesktopHeight benutzt. Um z.B. zur Mitte zu kommen musst du es einfach halbieren also durch 2 teilen.

  • Hallo Freaky,

    hm findest du Hotkeys besser?

    Danke für den Tipp
    MouseMove(@DesktopWidth / 2 ,@Desktopheight / 2,100)

    Noch ne Frage:
    Wie kann ich mit der SpaceTaste MouseMove anhalten? Starten...(Stop weiter...)
    huh da qualmt mir gerade mein Kopf...

    ;) Ilse

  • Also wenn du die Tasten am Notpad nicht brauchst, dann würde ich HotKeySet nehmen.

    Zu deinem Start und Stopp problem. Du könntest immer in kleinen abständen gehen, sodass du die Möglichkeit hast um es ab zu brechen.

  • Hi,

    Hätte eine schnelle Lösung, allerdings noch optimierbar :)

    So würds ich lösen, und hauptsache es funktioniert! :D

    Spoiler anzeigen
    [autoit]


    #AutoIt3Wrapper_UseX64=n
    #include <misc.au3>

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

    dim $toggle = 1, $deskh, $deskw, $midx, $midy

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

    $deskw = @DesktopWidth
    $deskh = @DesktopHeight
    $midx = $deskw / 2
    $midy = $deskh / 2

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

    HotKeySet("{space}","toggle")

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

    while 1
    sleep(1)
    if $toggle = 1 Then
    HotKeySet("{numpad1}","dl")
    HotKeySet("{numpad2}","dm")
    HotKeySet("{numpad3}","dr")

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

    HotKeySet("{numpad4}","ml")
    HotKeySet("{numpad5}","mm")
    HotKeySet("{numpad6}","mr")

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

    HotKeySet("{numpad7}","ul")
    HotKeySet("{numpad8}","um")
    HotKeySet("{numpad9}","ur")

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

    HotKeySet("{numpad0}","click")
    Else
    HotKeySet("{numpad1}")
    HotKeySet("{numpad2}")
    HotKeySet("{numpad3}")

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

    HotKeySet("{numpad4}")
    HotKeySet("{numpad5}")
    HotKeySet("{numpad6}")

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

    HotKeySet("{numpad7}")
    HotKeySet("{numpad8}")
    HotKeySet("{numpad9}")

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

    HotKeySet("{numpad0}")
    EndIf
    WEnd

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

    ;unten
    func dl()
    MouseMove(10,$midy*2-10,0)
    EndFunc
    func dm()
    MouseMove($midx,$midy*2-10,0)
    EndFunc
    func dr()
    MouseMove($midx*2-10,$midy*2-10,0)
    EndFunc

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

    ;mitte
    func ml()
    MouseMove(10,$midy,0)
    EndFunc
    func mm()
    MouseMove($midx,$midy,0)
    EndFunc
    func mr()
    MouseMove($midx*2-10,$midy,0)
    EndFunc

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

    ;oben
    func ul()
    MouseMove(10,10,0)
    EndFunc
    func um()
    MouseMove($midx,10,0)
    EndFunc
    func ur()
    MouseMove($midx*2-10,10,0)
    EndFunc

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

    func click()
    $coord = MouseGetPos()
    MouseClick("left",$coord[0],$coord[1],1,0)
    EndFunc

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

    func toggle()
    $toggle = _Iif($toggle = 1,0,1)
    EndFunc

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

    Kann es sein, dass man bei HotKeySet() keine Parameter übergeben kann? (sowas steht nämlich in der Hilfe :D)

    Edit: Tasten aktualisiert :thumbup:

    Gruß
    x0r

    Simon nörgelt, Simon nervt - aber Simon verbessert die Welt. Glaubt er.

    4 Mal editiert, zuletzt von x0r (16. März 2012 um 11:57)

  • Hallo Xor,

    konnte mich leider erst heute wieder melden.
    merci für deine Hilfe.
    Ich kriege das leider nicht zum laufen.

    Wenn ich die Numpad Tasten drücke passiert nichts!
    NumPad ist natürlich aktiviert.

    Liebe Grüße
    Ilse ;)

  • Hi Ilse,

    du musst auch zuerst mal auf Space drücken zum aktivieren :)

    Wenns schon beim Start direkt aktiviert sein soll, musst du halt $toggle auf 1 setzen :thumbup:

    Edit: Hab oben mal noch Num0 hinzugefügt für "klick" an der Stelle.
    Edit2: Noch schnell das zurücksetzen korrigiert :D

    Gruß
    x0r

    Simon nörgelt, Simon nervt - aber Simon verbessert die Welt. Glaubt er.

    Einmal editiert, zuletzt von x0r (16. März 2012 um 11:57)

  • Hallo Xor,

    was mich etwas verwirrt hat,
    MouseMove sieht man nicht.
    Den Wert kann man glaube ich verlangsamen. Das krieg ich hin.

    Für einen älteren Menschen ist das echt zu schnell.
    Noch ne Frage an dich:

    Ich weiß daß man den Mauszeiger in Windows größer machen kann.
    Gibt es da was in Autoit? Sobald Mousmove ausgelöst wird,
    wird der Mauszeiger groß.

    Liebe Grüße
    Ilse ;)
    nochmal DANKE

  • Hi Ilse,

    um die Mausbewegung langsamer zu machen, einfach die "0" hintendran durch eine Zahl austauschen (je höher, desto langsamer):

    z.b.:
    MouseMove(10,$midy*2-10,1)


    Edit: "MouseMove(<x>,<y>,[speed])"

    "1" ist schon langsamer, geht aber noch einiges, einfach mal in die Hilfe schauen ;)

    Bei Maus größer machen kann ich dir leider nicht helfen, sorry!!! :(

    Grüße
    x0r

    Simon nörgelt, Simon nervt - aber Simon verbessert die Welt. Glaubt er.