button in einer schleife abfragen.

  • ich hänge unter anderem an einem einem problem, wo ich in einer
    while-schleife einen knopf abfragen möchten, wenn dieser gedrückt wird, dann soll er in die _exit funktion springen.
    wenn ich das klassisch mache, dann springt er ständig in die case und führt aus... ich muss also irgendwie den knopfdruck abfragen...

    [autoit]


    Global $Quit2read = -1
    While 1
    Sleep(10)
    $msg = GUIGetMsg()
    $sw_onoff = 0
    Switch $msg
    Case $Quit2read = GUICtrlRead($Quit2)
    if $Quit2read = -1 Then
    Else
    _exit()
    EndIf
    EndSwitch

    [/autoit]

    Einmal editiert, zuletzt von WhiteLion (3. Juni 2010 um 21:46)

  • Ich erkenne den Sinn dieses Scripts noch nicht...
    Kannst du bitte mal das GANZE Script posten ?
    Sonst evtl. so:

    [autoit]

    Global $Quit2read = -1
    While 1
    Sleep(10)
    $msg = GUIGetMsg()
    $sw_onoff = 0
    Switch $msg
    Case $button ;musste mit der ID des Buttons erstzen...
    $Quit2read = GUICtrlRead($Quit2)
    if $Quit2read <> -1 Then
    _exit()
    EndIf
    EndSwitch

    [/autoit]
    Spoiler anzeigen

    Grundkenntnisse in: C++, JavaScript
    Sehr gute Kenntnisse: PHP, JAVA, C und näturlich AutoIt


    Klaviatur, Anhang UDF, GDI+ Mühle

    Zitat

    "Wenn einen um 20h der Pizzadienst anruft und fragt, ob man's nur vergessen hat und ob man das gleiche
    möchte wie immer -- dann sollte man sein Bestellverhalten evtl überdenken"

  • Das Script ist irgendwie... nunja.... :D
    Kann es sein, dass es so in der Richtung aussehen soll? ^^

    Spoiler anzeigen
    [autoit]

    Global $Quit2read = -1
    While 1
    $msg = GUIGetMsg()
    $sw_onoff = 0
    Switch $msg
    Case $Button ;nur als Beispiel
    $Quit2read = GUICtrlRead($Quit2)
    if $Quit2read <> -1 Then _exit()
    EndSwitch

    [/autoit]
  • grundsätzlich poste ich ja immer alle scripts, in diesem fall würde ich es allerdings vorziehen es nicht zu tun, da es
    mega lang ist (über 2000 zeilen) und nur mit persönlichen resourcen läuft... ich bitte um nachsicht :rolleyes:

    es geht einfach nur darum einen button per case auf gedrückt abzufragen was leider nicht herkömmlicher weise geht:

    [autoit]


    ;geht nicht, springt immer rein
    Case $msg = $Quit2
    _exit()

    [/autoit]


    gibt es denn noch eine andere möglichkeit den klick auf den button abzufragen ?

  • Zitat
    [autoit]

    ;geht nicht, springt immer rein
    Case $msg = $Quit2
    _exit()

    [/autoit]

    Das geht auch nicht in einer Switch-Schleife, sonder nur in einer Select-Schleife...
    Du musst einfach das $msg weglassen:

    [autoit]

    ;geht nicht, springt immer rein
    Case $Quit2
    _exit()

    [/autoit]

    Edit: Ach ne, das Problem ist was anderes ^^
    Versuchs mal so:

    [autoit]

    ;geht nicht, springt immer rein
    Case $msg == $Quit2
    _exit()

    [/autoit]
    Spoiler anzeigen

    Grundkenntnisse in: C++, JavaScript
    Sehr gute Kenntnisse: PHP, JAVA, C und näturlich AutoIt


    Klaviatur, Anhang UDF, GDI+ Mühle

    Zitat

    "Wenn einen um 20h der Pizzadienst anruft und fragt, ob man's nur vergessen hat und ob man das gleiche
    möchte wie immer -- dann sollte man sein Bestellverhalten evtl überdenken"

    Einmal editiert, zuletzt von Cartan12 (3. Juni 2010 um 21:46)

  • Case $Button ;nur als Beispiel $Quit2read = GUICtrlRead($Quit2) if $Quit2read <> -1 Then _exit()

    ey sag nix :)
    danke das hat geholfen!!

    @Cartan12

    danke!!! das auch :D

  • Seh da keinen Unterschied zu meinem, aber was solls ^^
    (Man, am Schluss hab ich wieder nicht existierende Fehler gefunden...)
    Edit: hast zu spät eddiert :P

    Spoiler anzeigen

    Grundkenntnisse in: C++, JavaScript
    Sehr gute Kenntnisse: PHP, JAVA, C und näturlich AutoIt


    Klaviatur, Anhang UDF, GDI+ Mühle

    Zitat

    "Wenn einen um 20h der Pizzadienst anruft und fragt, ob man's nur vergessen hat und ob man das gleiche
    möchte wie immer -- dann sollte man sein Bestellverhalten evtl überdenken"