Win7 und TraySetOnEvent

  • Hallo,

    ich hab selber kein Windows7 - aber mir wurde gesagt, dass meine Programme, die ein Sys-Tray-Icon verwenden, sich nicht darüber aufrufen lassen.

    Ich verwende gerne Sys-Tray-Icons um Programme zu minimieren und aus der Taskbar auszublenden.
    Opt("TrayOnEventMode",1)
    TraySetState ()

    Mit
    TraySetOnEvent ( $TRAY_EVENT_PRIMARYDOUBLE, "meineFunktion z.B. displayGUI" )
    kann ich mit 'nem Doppelclick auf das icon eine Funktion ausführen.

    Unter Windows 7 geht das seltsamerweise nicht - gibt es irgendein Workaround hierfür?

    Einmal editiert, zuletzt von Unicom (18. Dezember 2009 um 14:07)

    • Offizieller Beitrag

    Ich habe Win7 (64 Bit) und dieses Testscript funktioniert einwandfrei:

    Spoiler anzeigen
    [autoit]


    #include <GUIConstantsEx.au3>
    #include <Constants.au3>
    Opt("TrayOnEventMode",1)
    Opt("TrayAutoPause", 0)
    Opt("GUIOnEventMode",1)
    $hGui = GUICreate('test')
    GUISetOnEvent($GUI_EVENT_CLOSE, "_End")
    TraySetOnEvent($TRAY_EVENT_PRIMARYDOUBLE, "_Show")
    TraySetState()

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

    While Sleep(1000)
    WEnd

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

    Func _End()
    Exit
    EndFunc

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

    Func _Show()
    If BitAND(WinGetState($hGui), 2) Then
    GUISetState(@SW_HIDE)
    Else
    GUISetState(@SW_SHOW)
    EndIf
    EndFunc

    [/autoit]


    Doppelklick auf das TrayIcon zeigt/versteckt das Fenster.