TrayMenu

  • Also die Frage hört sich wahrscheinlich bescheuert an, aber ich bekomme es nicht hin, dass wenn ich mit TrayCreateItem und TrayCreateMenu ein Menü (unten neben der Uhr in der Taskleiste) erstellt habe, dass gleichzeitig zum Script läuft.
    Das Beispiel in der Hilfe ist das:

    [autoit]

    #Include <Constants.au3>
    #NoTrayIcon

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

    Opt("TrayMenuMode",1) ; Default tray menu items (Script Paused/Exit) will not be shown.

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

    $settingsitem = TrayCreateMenu("Settings")
    $displayitem = TrayCreateItem("Display", $settingsitem)
    $printeritem = TrayCreateItem("Printer", $settingsitem)
    TrayCreateItem("")
    $aboutitem = TrayCreateItem("About")
    TrayCreateItem("")
    $exititem = TrayCreateItem("Exit")

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

    TraySetState()

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

    While 1
    $msg = TrayGetMsg()
    Select
    Case $msg = 0
    ContinueLoop
    Case $msg = $aboutitem
    Msgbox(64,"About:","AutoIt3-Tray-sample")
    Case $msg = $exititem
    ExitLoop
    EndSelect
    WEnd

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

    Exit

    [/autoit]

    Allerdings ist das Script die ganze Zeit eine Unendlichschleife zum überprüfen, ob etwas in dem Menü geklickt wird. Aber das soll ja nur nebenbei passieren. Wo muss ich jetzt mein eigenes Script hinschreiben, z.B. Msgbox(0,"",Hallo")?

    Rechtschreibfehler sind Spezialeffekte meiner Tastatur.

    Einmal editiert, zuletzt von owi dowi spinn (12. Oktober 2009 um 11:32)

  • zum Beispiel so:

    Spoiler anzeigen
    [autoit]

    #Include <Constants.au3>
    #include <GUIConstants.au3>
    #NoTrayIcon

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

    Opt("TrayMenuMode",1) ; Default tray menu items (Script Paused/Exit) will not be shown.

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

    $settingsitem = TrayCreateMenu("Settings")
    $displayitem = TrayCreateItem("Display", $settingsitem)
    $printeritem = TrayCreateItem("Printer", $settingsitem)
    TrayCreateItem("")
    $aboutitem = TrayCreateItem("About")
    TrayCreateItem("")
    $exititem = TrayCreateItem("Exit")

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

    TraySetState()
    #include <GUIConstants.au3>
    GUICreate('')
    GUISetState()
    $msgbox = GUICtrlCreateButton("meine MSgBox",10,10,80,20)

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

    While 1
    $msg = TrayGetMsg()
    $msg1 = GUIGetMsg()
    Switch $msg
    Case $aboutitem
    Msgbox(64,"about:","AutoIt3-Tray-sample")
    Case $exititem
    ExitLoop
    EndSwitch
    Switch $msg1
    Case $GUI_EVENT_CLOSE
    Exit
    Case $msgbox
    MsgBox(0, '', "meine MsgBox")
    EndSwitch
    WEnd

    [/autoit]

    MfG Schnuffel

    "Sarkasmus ist die niedrigste Form des Witzes, aber die höchste Form der Intelligenz."
    Val McDermid

    ein paar Infos ...

    Wer mehr als "nur" Hilfe benötigt, kann sich gern im Forum "Programmieranfragen" an uns wenden. Wir helfen in allen Fällen, die die Forenregeln zulassen.

    Für schnelle Hilfe benötigen wir ein ! lauffähiges ! Script, dass wir als Demonstration des Problems testen können. Wer von uns erwartet ein Teilscript erstmal lauffähig zu bekommen, der hat
    1. keine wirkliche Not
    2. keinen Respekt vor Menschen die ihm in ihrer Freizeit Ihre Hilfe anbieten
    3. oder ist einfach nur faul und meint wir coden das für ihn

    In solchen Fällen erlaube ich mir, die Anfrage einfach zu ignorieren. ;)

  • Entferne mal

    [autoit]

    Case $msg = 0
    ContinueLoop

    [/autoit]


    aus deinem Beispiel

    Hier mal ein Beispiel mit GUI

    Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEx.au3>
    #NoTrayIcon

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

    Opt("TrayMenuMode", 1) ; Default tray menu items (Script Paused/Exit) will not be shown.

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

    GUICreate("Mein GUI Button") ; Erstellt ein GUI-Fenster welches mittig ausgerichtet wird

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

    Opt("GUICoordMode", 2)
    $Button_1 = GUICtrlCreateButton("Notepad ausführen", 10, 30, 100)
    $Button_2 = GUICtrlCreateButton("Button Test", 0, -1)

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

    GUISetState() ; Zeigt eine Dialogbox mit 2 Buttons an

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

    $settingsitem = TrayCreateMenu("Settings")
    $displayitem = TrayCreateItem("Display", $settingsitem)
    $printeritem = TrayCreateItem("Printer", $settingsitem)
    TrayCreateItem("")
    $aboutitem = TrayCreateItem("About")
    TrayCreateItem("")
    $exititem = TrayCreateItem("Exit")

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

    TraySetState()

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

    While 1
    $msg_tray = TrayGetMsg()
    $msg = GUIGetMsg()
    Select
    Case $msg_tray = $aboutitem
    MsgBox(64, "about:", "AutoIt3-Tray-sample")
    Case $msg_tray = $exititem
    ExitLoop
    Case $msg = $GUI_EVENT_CLOSE
    ExitLoop
    Case $msg = $Button_1
    Run('Notepad.exe') ; Öffnet Notepad
    Case $msg = $Button_2
    MsgBox(0, 'Test', 'Button 2 wurde gedrückt') ; Zeigt, dass Button2 gedrückt wurde
    EndSelect
    WEnd

    [/autoit]