Minimize GUI to Tray

  • Wie verstecke ich die Oberfläche meines AutoIt Programms in der System-Tray Leiste bzw. wie öffne ich die Oberfläche wieder?

    Ich hab das mal so versucht:

    [autoit]


    Case $btn_StartBackUp
    GuiSetState(@SW_HIDE)
    TraySetState(1)
    TraySetToolTip ("Klicken um Oberfläche zu öffnen!")
    EndSwitch
    If TrayGetMsg() == $TRAY_EVENT_PRIMARYUP Then
    GUISetState(@SW_SHOW)
    EndIf

    [/autoit]

    Das Fenster verschwindet zwar, wenn ich in der Tray-Bar allerdings auf das AutoIt Symbol klicke (wo auch der Text "Klicken um Oberfläche zu öffnen!" angezeigt wird) passiert nichts.

    Einmal editiert, zuletzt von CrazyAutoIT (30. Juni 2013 um 19:35)

  • @SW_RESTORE zum wiederholen und @SW_MINIMIZE zum minimieren.

    Steht aber auch mal wieder alles in der Hilfe.

  • Poste zukünftig bitte eine komplette GUI in der der Fehler reproduzierbar ist. Der Fehler tritt in meiner Test GUI jedenfalls nicht auf.

    [autoit]


    #include <ButtonConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <Constants.au3>

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

    Opt("TrayMenuMode",1)
    TraySetState(2)

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

    $Form1 = GUICreate("Form1", 615, 438, 192, 124)
    $Button1 = GUICtrlCreateButton("Button1", 208, 72, 75, 25)
    GUISetState(@SW_SHOW)

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Button1
    $ok = GUISetState(@SW_HIDE)
    ConsoleWrite($ok & @CRLF)
    TraySetState(1)
    TraySetToolTip ("Klicken um Oberfläche zu öffnen!")
    EndSwitch

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

    If TrayGetMsg()==$TRAY_EVENT_PRIMARYUP Then
    ConsoleWrite("up" & @CRLF)
    $ok = GUISetState(@SW_SHOW)
    ConsoleWrite($ok & @CRLF)
    EndIf
    WEnd

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


    Ich vermute mal, dass du die Pausefunktion des Trayicons nicht deaktiviert hast, welche beim Klick das ganze Script pausiert und somit auch erstmal kein nachfolgender Code ausgeführt wird.

    [autoit]

    Opt("TrayMenuMode",1)

    [/autoit]
  • Zitat

    ich vermute mal, dass du die Pausefunktion des Trayicons nicht deaktiviert hast

    Stimmt, danke :)