Maus mit Page UP und Page DOWN bewegen und drücken.

  • Hallo ich möchte mit Page UP und Page DOWN die Maus navigieren.

    Es müssen min. 13 stellen angefahren werden.
    Also Page UP soll immer im Grunde ein Wert zurück springen.
    Und mit Page DOWN immer ein Wert vor.

    Habs schon so versucht, aber will nicht so richtig

    [autoit]

    Global $Paused

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

    While True
    If IsPressed('21') Then
    MouseClick("left",8,8,1)
    $Paused
    EndIf

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

    If IsPressed('21') Then
    MouseClick("left",256,182,1)
    $Paused
    EndIf

    [/autoit]


    usw.

    Kann mir jemand helfen?
    Danke Sehr.

    Einmal editiert, zuletzt von franzaut (25. Oktober 2013 um 12:01)

  • Zitat

    Es müssen min. 13 stellen angefahren werden.

    ...na also wenn das kein Bot werden soll, dann weiss ich auch nicht ;)

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

  • Ja ein legaler Bot der in einer Powerpoint Präsentation auf Knöpfe drückt, wenn man Page UP oder Page DOWN macht.
    Das PowerPoint darf laut Firma nicht verändert werden. Sonnst wärs ja einfach.

    [autoit]

    Func IsPressed($hexKey)
    Local $aR, $bO
    $hexKey = '0x' & $hexKey
    $aR = DllCall("user32", "int", "GetAsyncKeyState", "int", $hexKey)
    If Not @error And BitAND($aR[0], 0x8000) = 0x8000 Then
    $bO = 1
    Else
    $bO = 0
    EndIf
    Return $bO
    EndFunc ;==>_IsPressed

    [/autoit]

    Keine Ahnung ob das überhaupt passt. Hab das ausn google.

    Das geht sicher irgendwie viel einfacher.

  • versuchs ma so :)

    [autoit]

    HotKeySet("{PGUP}","klicken1")
    HotKeySet("{PGDN}","klicken2")

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

    Func klicken1()
    ;...
    EndFunc

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

    Func klicken2()
    ;...
    EndFunc

    [/autoit]

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

  • Habs jetzt so

    [autoit]

    Global $Paused
    While True
    HotKeySet("{PGUP}","klicken1")
    HotKeySet("{PGDN}","klicken2")
    WEnd
    Func klicken1()
    MouseClick("left",8,8,1)
    EndFunc

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

    Func klicken2()
    MouseClick("left",256,182,1)
    EndFunc

    [/autoit]


    Aber wie mache ich jetzt die anderen Mauspositionen?

  • Natürlich geht es nicht. Du musst aber auch einwenig mit denken und eine Lösung überlegen. Tut mir Leid wenn das hart klingt aber du kannst hier nicht verlagen, dass wir dir den kompletten Code vorkauen.

    Ich gib dir mal ein Tipp.

    1. Mauspositionen = Variable
    2. Variable beim Start der Funktion addieren, subtrahieren oder gleich einen bestimmeten Wert setzen....

  • zusätzlicher tipp:

    [autoit]

    Func klicken1()
    MouseClick("left",1,1,0) ;pos1
    MouseClick("left",2,2,0) ;pos2
    EndFunc

    [/autoit]

    (verwende als letzten Parameter 0, dann ist der Klick instant)

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

  • w00t? :wacko:

    klick halt die Stellen nacheinander durch, is doch kein Problem?

    In meinem letzten Beispiel hab ich dir 2 Klicks vorgegeben, die erweiterst jetz einfach auf deine.

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

  • naja, wenn deine tasten 13 punkte ablaufen sollen, kommt das klar alles in eine funktion rein?

    oder willst du alle 13 auf separate tasten legen? da müssteste quasi die beiden tasten immer wieder neu belegen, aber auch das is kein thema :D

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

  • Ja Page UP soll alle 13 hintereinander durchklicken und Page DOWN soll alle 13 wieder zurück klicken.
    Also page up = Position 1, nochmal page up = Position 2, nochmals = Postition 3 usw. usw.

    2 Mal editiert, zuletzt von franzaut (25. Oktober 2013 um 11:42) aus folgendem Grund: Besser Beschrieben

    • Offizieller Beitrag

    Was um Himmels Willen soll denn diese kranke Mausklickerei?! Sowas darf nur die wirklich allerletzte Lösung sein, wenn nichts mehr geht.
    Powerpoint ist ein Office-Programm und somit sollte der Lösungsansatz über Zugriff auf das Objekt erfolgen. MakroRekorder in VBA einschalten, klicken, was zu klicken ist. Dann das Makro von VBA nach AutoIt portieren. Das ist ein sinnvoller Lösungsansatz.

  • ich hab schon diverse sachen mit rumklicken gelöst.. und er hat ja danach gefragt, evtl lernt er nochwas von :)

    meine vorab-lösung hier (BugFix, schau weg!!! :D):

    [autoit]

    Global $Paused, $cnt = 0

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

    HotKeySet("{PGUP}","klicken1")
    HotKeySet("{PGDN}","klicken2")

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

    While 1
    sleep(100)
    WEnd

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

    Func klicken1()
    $cnt += 1
    if $cnt = 14 Then $cnt = 1
    klicken()
    EndFunc

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

    Func klicken2()
    $cnt -= 1
    if $cnt = 0 Then $cnt = 13
    klicken()
    EndFunc

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

    func klicken()
    if $cnt = 1 Then MouseClick("left",811, 669,0) ;klick1
    if $cnt = 2 Then MouseClick("left",1037, 755,0) ;klick2
    if $cnt = 3 Then MouseClick("left",1114, 427,0) ;klick3
    if $cnt = 4 Then MouseClick("left",769, 297,0) ;klick4
    ;... klicks bis 14
    EndFunc

    [/autoit]

    und jetz muss ich weg, schönes WE euch :)

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

  • Du veränderst die PowerPoint Präsentation ja nicht.
    Ruf die Präsentation auf, schalt den Makrorecorder ein, mach was Du machen musst, schalte den Makrorecorder aus, kopiere das VBA Skript nach AutoIt und beende PowerPoint ohne die Präsentation zu speichern.