Kann mir bitte einer ein Skript erstellen?

  • Hallo liebe Community,

    ich würde mich freuen wenn mir einer ein Skript schreiben könnte,

    dieses sollte das hier tun:

    Alle 240 Sek. die F7 taste drücken
    Alle 68 Sek. die F8 taste drücken
    Alle 74 Sek. die F9 taste drücken

    Und das immer wieder, also solange dieses Skript aktiviert ist.

    Wenn noch fragen, dann bitte fragen.

    Vielen dank im vorraus.

    Einmal editiert, zuletzt von Amandil (28. September 2008 um 00:56)

    • Offizieller Beitrag

    Hallo liebe Community,
    ich würde mich freuen wenn mir einer ein Skript schreiben könnte,


    :D - Ich könnte dir vielleicht noch ein Mandeltörtchen backen...
    Aber wie peethebee schon sagt: Es ist nicht schwer und wenn trotzdem Fragen auftauchen, helfen wir schon. Aber erst mal selber anfangen.

  • Ich habe mir alles angeschaut.

    nur bekomme ich es nicht das die F-Tasten in diesen Zeiten gedrückt werden bzw überhaupt was gedrückt wird.

  • Hi,
    als allererstes schau dir den Befehl send an (in der Hilfe).
    Dann würde ich vorschlagen ein paar tutorials durchzumachen. SIlent Installation oder ähnliches. Und danach dürfte das mit den schon genannten Befehelen wie TimerInit und Timerdiff gar kein Problem mehr sein.
    Ziel ist es, dass du etwas dabei lernst, acuh wennes für uns nur 10 sec dauern würde...

  • [autoit]

    ("WinWaitDelay", 240000)
    Send ( "{F7}" [, flag] )
    ("WinWaitDelay", 68000)
    Send ( "{F8}" [, flag] )
    ("WinWaitDelay", 74000)
    Send ( "{F9}" [, flag] )

    [/autoit]


    So oder was?

    Einmal editiert, zuletzt von Amandil (27. September 2008 um 23:58)


  • So oder was?

    Hast du erfolge ? Probier es aus ;)

    Aber gut:

    WinWaitDelay ist eine Option die für etwas anderes genutzt wird.

    Dein Problem lässt sich im einfachsten Fall mit Sleep() realisieren.

    Besser wäre _Timer_SetTimer() oder TimerInt / TimerDiff.

    Send:

    Send ( "{F7}" [, flag] ) ist denke ich genau aus der Hilfe übernommen. Die [ (ekigeklammer) bedeutet, das der Flag Optional ist. Wenn du das komma nach "{F7}" setzt muss du auch einen Flag angeben.

    Für deinen Fall würde aber Send("{F7}") langen.

    Außerdem führt er die komplette Aktion nur ein mal aus : While Schleife mit einbauen.

    Und -> Die zu wartende Zeit muss in Milisekunden angegeben werden:

    Also 1 Sekunde = 1000 MS


    Viel Glück

    Lg,

    Lenny

    Jaja, Moo does the Cow!

  • Naja ^^
    Also um zu Warten gibt es die Funktion sleep (siehe Hilfe)

    z.B. sleep(100) bedeuted, dass dein Script 100 ms wartet, ...

    So jetzt zum Send.

    [autoit]

    Send ( "{F7}" [, flag] )

    [/autoit]


    Das [, flag] ist Optional, d.h. der parameter wird nicht unbedingt benötigt. Wenn du ihn trotzdem verwenden möchtest muss die Eckige Klammer weg und das "falg muss" durch die möglichkeiten die gegeben sind ersetzt werden (sieht man auch in der Hile, bei send wäre es jetzt z.B. :
    [optional] Changes how "keys" is processed:
    flag = 0 (default), Text contains special characters like + and ! to indicate SHIFT and ALT key-presses.
    flag = 1, keys are sent raw.

    Aber in deinem Fall reicht einfach

    [autoit]

    Send ( "{F7}")

    [/autoit]

    So, sleep Befehle sind jetzt vielleicht nicht so Optimal, deshalb kann man auch TimerInit und Timerdiff verwenden.
    TimerInit setzt einfach den Startpunkt, an dem das Script anfängt zu zählen (in ms).
    dann kannst du einfach abfragen, wieviele ms schon vergangen sind (mit If then abfragen)

    Aber ien anfang ist es mal, du hast es wenigstens Probiert :thumbup:;)

  • [autoit]

    While
    $begin = TimerInit()
    sleep(240000)
    $dif = TimerDiff($begin)
    MsgBox(0,"Zeitunterschied",$dif)
    Send("{F7}")
    $begin = TimerInit()
    sleep(68000)
    $dif = TimerDiff($begin)
    MsgBox(0,"Zeitunterschied",$dif)
    Send("{F8}")
    $begin = TimerInit()
    sleep(74000)
    $dif = TimerDiff($begin)
    MsgBox(0,"Zeitunterschied",$dif)
    Send("{F9}")
    WEnd

    [/autoit]

    So besser?

    • Offizieller Beitrag

    Ich würe mal sagen nehm die MsgBox Zeilen raus, sonst wird des mit den Sleep nix .

    [autoit]

    MsgBox(0,"Zeitunterschied",$dif)

    [/autoit]


    Damit wartet die MsgBox so lange wie der wert in $dif ist .

    Korrekt zur Zeitanzeige wäre

    [autoit]

    MsgBox(0,"Zeitunterschied"&$dif)

    [/autoit]


    Aber wieso die MSgBox überhaupt. Die bringt dein Timing auseinander,solange die MsgBox auf den Schirm ist macht dein Prog gar nix .

    • Offizieller Beitrag

    Soll des Prog die Tasten Hintereinander senden ? Oder jede Taste unabhängig voneinander ?

  • Am besten wäre es wenn alle Tasten am Anfang Gleichzeitig gedrückt werden, später dann nach den Zeit abständen.

  • Spoiler anzeigen
    [autoit]

    $taste1 = 240000
    $taste2 = 68000
    $taste3 = 74000

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

    $timer1 = TimerInit()
    $timer2 = TimerInit()
    $timer3 = TimerInit()

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

    While True
    If TimerDiff($timer1) > $taste1 Then
    Send("{F7}")
    $timer1 = TimerInit()
    EndIf
    If TimerDiff($timer2) > $taste2 Then
    Send("{F8}")
    $timer2 = TimerInit()
    EndIf
    If TimerDiff($timer3) > $taste3 Then
    Send("{F9}")
    $timer3 = TimerInit()
    EndIf
    Sleep(50)
    WEnd

    [/autoit]

    man bin ich sozial... nur weil dus ja scheinbar nicht hinbekommst ;)... Naja, wie gesagt, wenns mehr wird sollte man langsam mit einer Forschleife anfangen, sonst hat der Witz keinen Style mehr.