2 Buttons mit 2 unterschiedlichen Funtkionen?

  • Hi @ all,

    zu ersteinmal, ich bin neu hier im Forum und weis jetzt nicht ob das hier der richtige Bereich für meine Frage ist.
    Aber ich stell sie trotzdem mal :D :

    Kann man irgendwie in eine GUI 2 Buttons reinsetzen, die auch 2 verschiedene Funktionen haben?

    Ich habe hier schon aus einem Thread eine halbe Antwort gefunden hier der Code :


    [autoit]

    #include <GUIConstants.au3>

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

    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Form1", 331, 164, 193, 125)
    $Button1 = GUICtrlCreateButton("Start", 112, 64, 75, 25, 0)
    $Button2 = GUICtrlCreateButton("Abbrechen", 130, 100, 75, 25, 0) ;das is der 2.te button
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Button1 ;hier bestimmst du welcher button in diesem fall eben button1
    _Func1 () ;Hier bestimmst du wie die Funktion heisst die bei einem klick auf dem Button1 aus geführt wird
    Case $Button2 ;hier bestimmst du welcher button in diesem fall eben button2
    _Func2 () ;Hier bestimmst du wie die Funktion heisst die bei einem klick auf dem Button2 aus geführt wird
    EndSwitch
    WEnd

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

    Func _Func1 () ;Hier wird eine Funktion gestartet und zwar die funktion die oben dem Button1 zugewiesen wurde
    MsgBox(0, "funktion", "Somit wurde deine Button1 Funktion ausgeführt und die Gui beendet")
    Exit
    EndFunc

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

    Func _Func2 () ;Hier wird eine Funktion gestartet und zwar die funktion die oben dem Button2 zugewiesen wurde
    MsgBox(0, "funktion", "Somit wurde deine Button2 Funktion ausgeführt und die Gui beendet")
    Exit
    EndFunc

    [/autoit]

    Also habe ich schonmal 2 Buttons^^. Aber die machen beide das gleiche...
    Ich wollte das eigentlich so haben, das der 1. Button ein anderes Script oder eine .exe startet und der andere sollte zum abbrechen des Scriptes oder der .exe sein.

    Geht das irgendwie?

    MfG

    Der Anfänger

  • Schreib doch einfach:


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

    Case $Button1
    Run ("deineDatei.exe")

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

    Case $Button2
    ControlSend("Fenstername","","","!{F4}"); Wenn du button 2 drückst, beendet er das Fenster, in dem das Script zu laufen hat

    [/autoit]


    Hoffe es stimmt!

    MFG Elite

    Es gibt sehr viele Leute, die glauben. Aber aus Aberglauben.
    - Blaise Pascal

  • Du hast zwei Funktionen, die du jetzt mit unterschiedlichen Funktionalitäten füllen kannst:

    [autoit]

    Func _Func1 () ;Hier wird eine Funktion gestartet und zwar die funktion die oben dem Button1 zugewiesen wurde
    MsgBox(0, "funktion", "Erste Aktion:")
    Run("DeinProgramm.exe")
    EndFunc

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

    Func _Func2 () ;Hier wird eine Funktion gestartet und zwar die funktion die oben dem Button2 zugewiesen wurde
    MsgBox(0, "funktion", "Beenden:")
    Exit
    EndFunc

    [/autoit]

    Twitter: @L3viathan2142
    Benutze AutoIt persönlich nicht mehr, da ich keinen Windows-Rechner mehr besitze.

  • wieso so kompliziert ;)

    mach doch einfach zum beenden des skriptes

    [autoit]


    Case $Button2
    MsgBox(0, "Auf wiedersehen", "Tschüss")
    Exit
    Case $Button1
    Run ("Deine_Datei.exe")

    [/autoit]

    so gehtz einfacher mit Beenden

    lg ophiel

  • Hallo de Anfänger,

    herzlich willkommen im Forum und viel Spass mit AutoIt. Es werden 2 (zwar sehr ähnlich aufgebaute) unterschiedliche func's aufgerufen. In diesem Beispiel siehst du es besser. Zum Starten von Programmen kannst du run benutzen:

    Spoiler anzeigen
    [autoit]

    ; *** Start added by AutoIt3Wrapper ***
    #include <GUIConstantsEx.au3>
    ; *** End added by AutoIt3Wrapper ***
    #Region ;**** Directives created by AutoIt3Wrapper_GUI ****
    #AutoIt3Wrapper_UseUpx=n
    #AutoIt3Wrapper_Add_Constants=n
    #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Form1", 331, 164, 193, 125)
    $Button1 = GUICtrlCreateButton("Start", 112, 64, 75, 25, 0)
    $Button2 = GUICtrlCreateButton("Abbrechen", 130, 100, 75, 25, 0) ;das is der 2.te button
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Button1 ;hier bestimmst du welcher button in diesem fall eben button1
    _Func1() ;Hier bestimmst du wie die Funktion heisst die bei einem klick auf dem Button1 aus geführt wird
    Case $Button2 ;hier bestimmst du welcher button in diesem fall eben button2
    _Func2() ;Hier bestimmst du wie die Funktion heisst die bei einem klick auf dem Button2 aus geführt wird
    EndSwitch
    WEnd

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

    Func _Func1() ;Hier wird eine Funktion gestartet und zwar die funktion die oben dem Button1 zugewiesen wurde
    MsgBox(0, "funktion", "Jetzt wird der Taschenrechner ausgeführt und die Gui beendet")
    Run("Calc.exe")
    Exit
    EndFunc ;==>_Func1

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

    Func _Func2() ;Hier wird eine Funktion gestartet und zwar die funktion die oben dem Button2 zugewiesen wurde
    If MsgBox(36, "Programm beenden?", "Du hast auf beenden geklickt." & @CRLF & "Bist du dir sicher, dass du dieses Programm beenden willst?") = 6 Then Exit
    EndFunc ;==>_Func2

    [/autoit]

    mfg (Auto)Bert

  • Hey,

    erstmal danke für die vielen Antworten.
    Das mit dem starten der .exe hat funktioniert, aber was den 2. Button angeht, der sollte nicht die GUI beenden sondern das Programm was durch den 1. Button ausgelöst wurde.

    Geht das auch?

    irgendwie :D

  • Danke

    es hat alles super funktioniert^^

    nun läuft mein Bot ein wenig besser was das an und ausschalten betrifft.

    eine frage hätte ich da noch:

    Es gibt ja den Befehl WinWaitActive oder so ähnlich der das Script warten lässt bis Fenster X aktiv ist.
    Gibt es auch einen befehl der, egal ob das Fenster aktiv oder nicht is, immer nur in Fenster X arbeitet? So dass man nebenbei noch sowas wie Firefox öffnen kann und z.b.: bei google ohne probleme schreiben kann?

    mfg

    DerAnfänger

    Einmal editiert, zuletzt von DerAnfänger (21. Februar 2010 um 16:50)

  • :S tschuldigung...

    dachte weil das in dem spiel erlaubt is macht das nix aus :)

    aber gibt es diesen befehl nun?

    Weil im Tut auf der AutoIT-Wiki find ich nix :?:

  • also nochmal dazu,

    in den agb oder den regeln steht kein verbot drin.

    ich deute das mal als erlaubt.

  • Selbst wenn das stimmt: Das hier würde dann trotzdem als Anleitung für illegale Bots dienen. Das ist eine rechtlich schwierige Situation für Forenbetreiber, möglicherweise wird's bald noch schlimmer (JMStV)...

    Twitter: @L3viathan2142
    Benutze AutoIt persönlich nicht mehr, da ich keinen Windows-Rechner mehr besitze.

  • :( aso

    hm na dann wo kann ich nachschauen um so einen Befehl zu finden?

    aber danke schonam für die tips