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

    über mich...

    ich habe meine Erfahrungen hauptsächlich gesammelt in (grobe Übersicht):

    - RibbonBar Automation
    - MySQL Nutzung
    - GUIs in vielerlei Ausprägung
    - Nutzung von Powershell / Batch in AutoIt
    - Windows Automatisierung

    außerhalb von AutoIt:

    - Sprachen: PS, Batch, php, html(5), javascript, (perl eingeschränkt), vbs
    - Powershell (AD, WPF inkl. Multi-Threading, ...)
    - Deployment-Automatisierung ohne SCCM
    - Office-Nutzung mit COM-Object (AutoIt, PowerShell)
    - ActiveDirectory und alles was damit zusammenhängt
    - Hyper-V Clustering (Converged / Hyper Converged)
    - Serverhardware (Konfiguration, Aufbau, Architektur, Betrieb)

    Lieblingsthema:

    günstige Automatisierung von Vorgängen, für die andere Firmen viel Geld nehmen

    more to come ...

  • 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]