Buttons im GUI

  • ich hab gerade kein plan, wie ich meine idee in die tat umsetzen soll.

    ich hab buttons in mein gui eingebaut und möchte es nun so einstellen, dass wenn ich den button klicke, eine exe-datei geöffnet wird (soweit ist es auch kein problem für mich)

    ich möchte aber auch versuchen,
    1 variante:
    sobald ich button 1 klicke, der button seine aufschrift ändert und beim erneuten klicken er die exe-datein wieder beendet

    oder
    2. variante
    solbald ich button1 klicke, ein zweiter button erscheint, mit dem ich die exe-datei beenden kann (wenn ich button 2klicke, sollte dieser button jedoch wieder verschwinden)

    hoffe jemand versteht worauf ich hinaus will
    vielleicht denke ich aber auch viel zu kompliziert und es gibt ne einfach lösung (die aber nicht heißt, von anfang an2buttons anzuzeigen, da es dann zu viele werden :x)

    Einmal editiert, zuletzt von gimp (14. Dezember 2009 um 23:46)

    • Offizieller Beitrag

    Sowas? (Bitte warten, Hilfe wird gestartet)

    Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEx.au3>

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

    Global $stat = 0
    $gui1 = GUICreate('GUI')
    WinSetOnTop($gui1, '', 1)
    $btn1 = GUICtrlCreateButton('Starte Help', 10, 20, 100, 20)
    GUICtrlSetBkColor($btn1, 0x00FF00)

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

    GUISetState(@SW_SHOW, $gui1)

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

    While 1
    $msg = GUIGetMsg()
    $pid = ProcessExists('AutoIt3Help.exe')
    If $stat <> $pid Then $stat = _ToggleBtnCol($btn1, $pid)
    Switch $msg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $btn1
    If $stat Then
    ProcessClose($stat)
    Else
    ShellExecute(StringReplace(@AutoItExe, 'autoit3.exe', 'AutoIt3Help.exe'))
    EndIf
    EndSwitch
    WEnd

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

    Func _ToggleBtnCol($ID, $PID)
    If $PID Then
    GUICtrlSetBkColor($ID, 0xFA8072)
    ControlSetText($gui1, '', $ID, 'Beende Help')
    Else
    GUICtrlSetBkColor($ID, 0x00FF00)
    ControlSetText($gui1, '', $ID, 'Starte Help')
    EndIf
    Return $PID
    EndFunc

    [/autoit]