Ausblenden wenn minimiert

  • Hi,
    ihr kennt doch bestimmt vom Task-Manager unter Optionen "Ausblenden wenn minimiert". Ich möchte jetzt, dass mein GUI unsichtbar wird wenn ich auf das X klicke. Meine Überlegung war folgende, die aber nicht funktioniert:

    [autoit]

    If $Traymsg = $GUI_EVENT_CLOSE Then
    GUISetState(@sw_hide, $Mainwindow)
    EndIf

    [/autoit]


    Ich freue mich auf eure Unterstützung
    /Edit: Welches Include enthält $GUI_EVENT_CLOSE? Wenn ich da eine Msgbox einbaue springt die nämlich noch nicht mal an

    Einmal editiert, zuletzt von Aquaplant (15. November 2009 um 22:58)

  • [autoit]

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

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

    Opt("GUIOnEventMode",1)
    Opt("TrayOnEventMode",1)
    Opt("TrayAutoPause",0)
    TraySetOnEvent($TRAY_EVENT_PRIMARYDOUBLE, "_Show")

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

    $hGui=GUICreate("Test")
    GUISetOnEvent($GUI_EVENT_CLOSE, "_Hide")
    GUISetState(@SW_SHOW, $hGui)

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

    While 1
    Sleep(1000)
    WEnd

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

    Func _Hide()
    GUISetState(@SW_HIDE, $hGui)
    EndFunc

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

    Func _Show()
    GUISetState(@SW_SHOW, $hGui)
    EndFunc

    [/autoit]

    Doppelklick auf TrayIcon macht es wieder sichtbar

  • Mein mir klappts.
    achja, entweder du schreibst oben hin

    [autoit]

    #include <GUIConstantsEx

    [/autoit]


    oder

    [autoit]

    Global Const $GUI_EVENT_CLOSE = -3

    [/autoit]

    Bei mir machts keine probleme.

    Meine Projekte:
    ClipBoard Manager (beendet)
    Gutes ClipBoard Verwaltungs Programm mit nützlichen Funktionen.

    HTML Creator (beendet)
    Nützliches Tool um schnell ein eigenes HTML Dokument zu erstellen.

  • Nope bei mir rührt sich nix. Liegt es vielleicht an den GUI Einstellungen?

    [autoit]

    $Mainwindow = GUICreate("Server", @DesktopWidth /100*25, @DesktopHeight/100*15, -1, -1, BitOR($WS_SIZEBOX, $WS_MAXIMIZEBOX, $WS_MINIMIZEBOX), $WS_EX_ACCEPTFILES)

    [/autoit]
  • Das müsste gehen:


    [autoit]

    #include <GUIConstants.au3>
    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Form1", 456, 303, 408, 218)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###
    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Hide()
    EndSwitch
    WEnd

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

    Func Hide()
    GUISetState(@SW_HIDE)
    EndFunc

    [/autoit]
  • If $Traymsg = $GUI_EVENT_CLOSE Then

    TrayMsg . GUI... !?

    Du musst dich da schon entscheiden. Wenn du übrigens im Tray auf "Exit" drückst, ist das ein gnadenloses Kill. Denn wie du sicher schon bemerkt hast, das schließen übers tray menü funktioniert IMMER, auch wenn du nichts definiert hast.
    Also - erstmal eigene Menüpunkte einbauen. So hier:

    [autoit]

    #include <GUIConstants.au3>

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

    Opt("TrayAutoPause",0)
    Opt("TrayMenuMode",1)

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

    $tShow = TrayCreateItem("Anzeigen/Verstecken")
    $tExit = TrayCreateItem("Beenden")

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

    $GUI = GUICreate("Langeweile")
    GUISetState(@SW_SHOW)

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

    Global $InTray = False

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

    Func _ShowHide()
    If $InTray Then
    GUISetState(@SW_SHOW,$GUI)
    GUISetState(@SW_RESTORE,$GUI)
    $InTray = False
    Else
    GUISetState(@SW_MINIMIZE,$GUI)
    GUISetState(@SW_HIDE,$GUI)
    $InTray = True
    EndIf
    EndFunc

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    _ShowHide()
    EndSwitch

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

    $tMsg = TrayGetMsg()
    Switch $tMsg
    Case $tShow
    _ShowHide()
    Case $tExit
    Exit
    EndSwitch
    WEnd

    [/autoit]