Simplen Parameter übergeben

  • Hallo!

    Ich möchte ein Skript bauen, dass auf Tastendruck zwei verschiedene Aktionen ausführt, je nachdem welchen Wert momentan meine Variable hat.
    Sprich:
    Ich drücke "G" --> es wird untersucht, welchen Wert i hat. Wenn i = 0 ist, wird XYZ ausgeführt und i auf 1 gesetzt.
    Dann drücke ich wieder "G" --> es wird untersucht, welchen Wert i hat. i = 1, also wird ZYX ausgeführt und i wieder auf 0 gesetzt.

    Ich habe bisher nur C in Ansätzen gelernt und finde einfach keine ordentliche Anleitung für die if Schleife!
    So sieht mein Code bisher aus:

    [autoit]

    HotKeySet("{0}", "Taste0")
    HotKeySet("{Pause}","Quit")

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

    TogglePause()

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

    func Taste0()
    HotKeySet("{0}")
    $i = 0
    if $i=0 then
    send("{0}")
    $i = $i + 1
    Else
    send("{#}")
    $i = $i - 1
    EndIf
    EndFunc

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

    Func TogglePause()
    ToolTip('Skript pausiert',0,0)
    HotKeySet("{0}", "Taste0")
    While 1
    sleep(100)
    WEnd
    EndFunc

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

    func Quit()
    Exit
    EndFunc

    [/autoit]

    Das Problem ist aber, er führt die Erhöhung von i nicht durch ... glaube ich zumindest!
    Kann mir jemand helfen?

    LG


    edith:

    Danke vielmals, ihr habt mir sehr geholfen!

    Einmal editiert, zuletzt von Sabcoll (16. März 2009 um 18:55)

  • Spoiler anzeigen
    [autoit]

    HotKeySet("{0}", "Taste0")
    HotKeySet("{Pause}","Quit")

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

    TogglePause()

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

    func Taste0()
    HotKeySet("{0}")
    $i = 0
    if $i = 0 then
    send("{0}")
    $i = 1
    Else
    send("{#}")
    $i = 0
    EndIf
    EndFunc

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

    Func TogglePause()
    ToolTip('Skript pausiert',0,0)
    HotKeySet("{0}", "Taste0")
    While 1
    sleep(100)
    WEnd
    EndFunc

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

    func Quit()
    Exit
    EndFunc

    [/autoit]

    mfg. Jam00

  • Danke schonmal für die schnelle Antwort.

    Hatte noch zwei Fehler drin --> im nachfolgenden Code behoben.
    Das Problem ist aber, nach dem ersten Drücken von "g" wird "0" ausgeführt.
    Nach dem zweiten Drücken von "g" aber nicht "#" ! Daran scheiterts, auch an deinem Code ...

    Spoiler anzeigen
    [autoit]

    HotKeySet("{g}", "Taste0")
    HotKeySet("{Pause}","Quit")

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

    TogglePause()

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

    func Taste0()
    HotKeySet("{g}")
    $i = 0
    if $i = 0 then
    send("{0}")
    $i = 1
    Else
    send("{#}")
    $i = 0
    EndIf
    EndFunc

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

    Func TogglePause()
    ToolTip('Skript pausiert',0,0)
    HotKeySet("{g}", "Taste0")
    While 1
    sleep(100)
    WEnd
    EndFunc

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

    func Quit()
    Exit
    EndFunc

    [/autoit]
  • [autoit]

    While $i = 0
    Wend

    [/autoit][autoit]

    While $i = 1
    Wend

    [/autoit]

    Und das ganze Programm in einer

    [autoit]

    While 1
    Wend

    [/autoit]

    Schlife laufen lassen das er immer wieder überprüft ob was gedrück wurde und ob der wer kleiner wird oder größer

    [autoit]

    MsgBox(0,"",""&$i)

    [/autoit]

    Vor und nach der rechnung das sieht dur den wert vor der rechnung in einer box und nach der rechnung in einer anderen.
    funktioniert auch wenn du strings testen willst

    EDIT: war wohl zu spät wie sich sehe hab ich aber auch komplizierter gedacht

  • Nee, das funktioniert irgendwie nicht.
    Wie gesagt, er scheint i nicht hochzusetzen und dann das
    else
    auszuführen.
    Beim Druck auf "G" passiert immer nur "0", nicht aber "#" ...

    edit, ich muss mich korrigieren:
    Es passiert nur EINMAL 0, aber auch kein zweites mal.
    Es scheint, als wenn er die Funktion total abschalten würde...

    • Offizieller Beitrag
    [autoit]

    HotKeySet("{g}", "Toggle")
    HotKeySet("{Pause}","Quit")

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

    Global $i = 0

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

    While 1
    Sleep(50)
    WEnd

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

    Func Toggle()
    If $i = 0 Then
    $i = 1
    Return _xyz()
    Else
    $i = 0
    Return _zyx()
    EndIf
    EndFunc

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

    Func _xyz()
    MsgBox(0, '', 'xyz läuft')
    EndFunc

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

    Func _zyx()
    MsgBox(0, '', 'zyx läuft')
    EndFunc

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

    func Quit()
    Exit
    EndFunc

    [/autoit]
  • Leute, ihr seids die größten!

    Danke vielmals, mein Skript läuft wie ich es mir vorgestellt habe!
    Dankesehr!