GUI öffnen via TrayItemSetOnEvent geht nicht/GUI nur in Taskleiste sichtbar

  • Hallo zusammen

    Ich versuche ein Gui einzublenden via TrayItemSetOnEvent leider wird dabei die Gui nur in der Taskleiste sichtbar

    mit Doppelklick auf das Trayicon funktioniert es jedoch

    hoffe jemadn kann mir helfen =)

    Thx in advance

    Test Code

    [autoit]

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

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

    Opt("TrayMenuMode", 1)
    Opt("TrayOnEventMode", 1)
    TraySetClick(8)

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

    $openitem = TrayCreateItem("Öffnen")
    TrayItemSetOnEvent($openitem, "TrayDoubleEvent")
    $exititem = TrayCreateItem("Exit")
    TrayItemSetOnEvent($exititem, "Beenden")
    TraySetOnEvent($TRAY_EVENT_PRIMARYDOUBLE, "TrayDoubleEvent")

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

    Opt('GUIOnEventMode', 1)
    Global $GUI = GUICreate("test", 350, 93)
    GUISetOnEvent($GUI_EVENT_CLOSE, "Beenden")
    GUISetOnEvent($GUI_EVENT_MINIMIZE, "MinimizeToTray")
    GUISetState(@SW_SHOW, $GUI)

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

    Func TrayDoubleEvent()
    TrayItemSetState($openitem, $TRAY_UNCHECKED)
    GUISetState(@SW_SHOW, $GUI)
    EndFunc ;==>TrayDoubleEvent

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

    Func MinimizeToTray()
    GUISetState(@SW_HIDE, $GUI)
    EndFunc ;==>MinimizeToTray

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

    While True
    Sleep(100)
    WEnd

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

    Func Beenden()
    Exit 0
    EndFunc ;==>Beenden

    [/autoit]

    des weiteren hab ich bemerkt, dass jedes mal wenn ich Tidy laufen lasse die Funktion "Beenden" in "beenden" umbenannt wird irgend ein Sinn dahinter?

    Einmal editiert, zuletzt von acc4iload (30. Dezember 2011 um 14:53)

  • Also bei mir zeigt er die GUI beim starten gleich an...

    Achso ich glaub ich habs verstanden...
    Probioer es mal so:

    [autoit]


    Func TrayDoubleEvent()
    TrayItemSetState($openitem, $TRAY_UNCHECKED)
    GUISetState(@SW_SHOW, $GUI)
    GUISetState(@SW_RESTORE, $GUI)
    EndFunc ;==>TrayDoubleEvent

    [/autoit]

    Einmal editiert, zuletzt von darius83 (30. Dezember 2011 um 14:48)

  • Ich verstehe auch nicht so ganz, warum er die GUI beim verstecken minimert... Vieleicht wird der Befehl nicht richtig überschrieben sondern nur ergänzt? Jedenfalls funktioniert es jetzt :)