Eigenes Sleep zählfunktion spinnt ?

  • Also : Da ich mit Sleep ja keine Variabeln als timer einsetzen kann habe ich folgendes :

    [autoit]

    Func Sleep1($Time1)
    $Time12 = $Time1/1000
    for $a = 0 to $Time12 Step 1
    Sleep(1000)
    Next
    MsgBox(0,$a,$a)
    EndFunc

    [/autoit]

    jedoch zählt dieser nicht richtig liegt das auch an der variable und was kann ich dagegen tun

    Einmal editiert, zuletzt von Berlinermauer (10. März 2008 um 16:03)

  • Hi, wie bitte?!
    Du kannst mit sleep keine variablen als timer setzen? Und warum bitte nicht? Oo

    [autoit]


    $a = 500
    sleep($a)

    [/autoit]

    greetz

  • Sleep($Time)

    $Time ist in millisekunden kann aber abweichen, weil das abhängig vond er cpu auslastung rechnet wenn du einen präzisen wert haben willst nimm

    TimerInit

  • komisch ich hatte folgendes Drinne und da es nicht ging habe ich nach jedem sleep eine MsgBox gesetzt sie kahmen Apprupt auf einander.

    [autoit]

    Func Click($x,$y)
    MsgBox(0,"1","FOOO")
    MouseClick("left",$x,$y,1,0)
    Sleep($Time1)
    MouseClick("left",$x,$y,1,0)
    MsgBox(0,"2","FOOOO")
    Sleep($Time2)
    MouseClick("left",$x,$y,1,0)
    EndFunc

    [/autoit]
  • ich denke wenn ich den ganze Code poste wirds für euch einfacher.

    Ja es sind MS aber irgendwie wollte das nicht so. Das Script soll einfach jede angegebene Zeit wo hin klicken.

    [autoit]


    Dim $x
    Dim $y
    Dim $Time1
    Dim $Time2

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

    ;Funktionen

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

    Func Click($x,$y)
    MsgBox(0,"1","FOOO")
    MouseClick("left",$x,$y,1,0)
    Sleep($Time1)
    MouseClick("left",$x,$y,1,0)
    MsgBox(0,"2","FOOOO")
    Sleep($Time2)
    MouseClick("left",$x,$y,1,0)
    EndFunc

    Func Time($Time1,$Time2)
    $Time1 = InputBox("Mein Proggie","Geben sie hier die errechnete Zeit an (in Millisekunden) Das Proggie drückt dann auf den link, dann wartet er Zeit eins drückt wieder wartet wieder und klickt")
    $Time2 = InputBox("Mein Proggie","Zeit2")
    Click($x,$y)
    EndFunc

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

    Func SavePositions($x,$y)
    $x = MouseGetPos(0)
    $y = MouseGetPos(1)
    Time($x,$y)
    EndFunc
    ; Ende der Funktionen

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

    MsgBox(0,"Mein Proggie","Wenn sie nun Das MalZeichen auf ihrem NUMPAD drücken wird das Progg sich mekren wo das war und sie geben dannach mithilfe des Talentrechners auf http://www.******.de die Zeiten fest [DEMO VERSION NUR 2 ZEITEN!]")
    HotKeySet("{NUMPADMULT}","SavePositions")
    while 1
    sleep(200)
    WEnd

    [/autoit]

    das wars

  • Und wo hast du jetzt den Variablen eine bestimmte Zeit zugewiesen? ;)

  • Und wo hast du jetzt den Variablen eine bestimmte Zeit zugewiesen? ;)

    Zitat
    [autoit]

    $Time1 = InputBox("Mein Proggie","Geben sie hier die errechnete Zeit an (in Millisekunden) Das Proggie drückt dann auf den link, dann wartet er Zeit eins drückt wieder wartet wieder und klickt")
    $Time2 = InputBox("Mein Proggie","Zeit2")

    [/autoit]
  • Oh da war ich wohl voreilig.
    So funzts:

    Spoiler anzeigen
    [autoit]


    Dim $x
    Dim $y
    Dim $Time1
    Dim $Time2

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

    MsgBox(0,"Mein Proggie","Wenn sie nun Das MalZeichen auf ihrem NUMPAD drücken wird das Progg sich mekren wo das war und sie geben dannach mithilfe des Talentrechners auf http://www.******.de die Zeiten fest [DEMO VERSION NUR 2 ZEITEN!]")
    HotKeySet("{NUMPADMULT}","_DoClick")

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

    while 1
    sleep(200)
    WEnd

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

    Func _DoClick()
    ;save positions
    $x = MouseGetPos(0)
    $y = MouseGetPos(1)
    $Time1 = Number(InputBox("Mein Proggie","Geben sie hier die errechnete Zeit an (in Millisekunden) Das Proggie drückt dann auf den link, dann wartet er Zeit eins drückt wieder wartet wieder und klickt"))
    $Time2 = Number(InputBox("Mein Proggie","Zeit2"))
    msgbox(0,"","1 = " & $Time1 & " 2 = " & $time2)
    MsgBox(0,"1","FOOO")
    MouseClick("left",$x,$y,1,0)
    Sleep($Time1)
    MouseClick("left",$x,$y,1,0)
    MsgBox(0,"2","FOOOO")
    Sleep($Time2)
    MouseClick("left",$x,$y,1,0)
    EndFunc

    [/autoit]

    hast da irgendwie voll viele funktionen komisch verschachtelt :)

    greetz

    • Offizieller Beitrag

    Das hilft auch nicht, die Variablen sind eh schon global da sie ausserhalb der Funktionen deklariert sind.

    Das Problem ist das durch die Funktionsdefinition der Funktion Time zwei neue (lokale) Variablen definiert werden, die dann den Wert zugewiesen bekommen. Diese Variablen werden aber am Ende der Funktion Time wieder gelöscht und die globalen Variablen erhalten nie eine Wertzuweisung.

    Eine Möglichkeit wäre folgende:

    [autoit]

    Func Time(ByRef $Time1, ByRef $Time2)
    $Time1 = InputBox("Mein Proggie","Geben sie hier die errechnete Zeit an (in Millisekunden) Das Proggie drückt dann auf den link, dann wartet er Zeit eins drückt wieder wartet wieder und klickt")
    $Time2 = InputBox("Mein Proggie","Zeit2")
    Click($x,$y)
    EndFunc

    [/autoit]

    Am besten mal den Abschnitt über lokale und globale Variablen zu gemüte führen!