Gui im Systray verstecken

  • Hallo zusammen

    gibt es eine Möglichkeit ein GUI im Systray beim Start zu verstecken und anschliessend die GUI wieder durch Klick auf das Systray einzublenden.

    Spoiler anzeigen

    #include <ButtonConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Form1", 615, 440, 192, 124)
    $Button1 = GUICtrlCreateButton("Exit", 416, 320, 113, 49)


    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg

    Case $Button1
    Exit

    Case $GUI_EVENT_CLOSE
    Exit

    EndSwitch
    WEnd

    Gruss

    johny

    Einmal editiert, zuletzt von johny1099 (12. August 2012 um 18:12)

  • [autoit]

    GUISetState(@SW_MINIMIZE)

    [/autoit]

    anstatt @show und das Traymenu anpassen:

    z.B.:

    [autoit]

    Opt("TrayOnEventMode", 1)
    Opt("TrayMenuMode", 1) ; Default tray menu items (Script Paused/Exit) will not be shown.
    TraySetClick(16) ; Only secondary mouse button will show the tray menu.

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

    TrayCreateItem("Show")
    TrayItemSetOnEvent(-1, "ShowGui")
    TrayCreateItem("")
    TraySetToolTip($ProgName)
    TraySetState()
    ...

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

    Func ShowGui()
    GUISetState(@SW_SHOW, $Form1)
    GUISetState(@SW_RESTORE, $Form1)
    EndFunc

    [/autoit]

    ...

  • Edit: Da war wer schneller X( :P

    [autoit]

    AutoItSetOption('TrayMenuMode', 1)

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

    $verstecken = TrayCreateItem('Fenster verstecken')
    $anzeigen = TrayCreateItem('Fenster anzeigen')

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

    $GUI = GUICreate('GUI', 300, 300)
    GUISetState(@SW_SHOW, $GUI)

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

    While Sleep(10)
    $msg = GUIGetMsg()
    $tmsg = TrayGetMsg()
    Select
    Case $tmsg = $verstecken
    GUISetState(@SW_HIDE, $GUI)
    Case $tmsg = $anzeigen
    GUISetState(@SW_SHOW, $GUI)
    Case $msg = -3
    Exit
    EndSelect
    WEnd

    [/autoit]
  • Hallo zusammen

    danke für die schnelle Beantwortung meiner Frage.

    Gibt es eine Möglichkeit das Form einzublenden ohne einen zusätzlichen Eintrag im Systray Icon.

    Das GUI soll aus eingeblendet werden wenn man auf das Icon im Systray klickt.

    Gruss
    johny

  • Siehe Hilfe zu traygetmsg().

  • Hallo misterspeed

    ich habe die Hilfe von traygetmsg() gelesen.

    Ich möchte aber keine Einträge im Systray Icon haben. Sondern es soll sofort das GUI angezeigt werden, wenn ich auf das Icon Symbol im Systray klicke.

    Gruss
    johny