TrayIcon - Links- Rechtsklick optionen

  • Moin,

    ich möchte ein TrayIcon erstellen und wenn die linke Maustaste gedrückt wird,
    dann soll ein Programm gestartet werden.
    Wenn die linke Maustaste gedrückt wird, soll ein TrayMenü gezeigt werden.

    Mein Problem ist jetzt womit mache ich das nun ?

    TrayGetMsg()... oder
    TraySetOnEvent()... oder womit ???

    Ich habe mich schon durch die Hilfe gewühlt, diese hat mich jedoch nun völlig verwirrt... :irre:
    Kann jemand ein kleines BsplScript geben ?


    Gruß
    Greenhorn


    • Offizieller Beitrag

    Hi,

    so ungefähr?

    Spoiler anzeigen
    [autoit]

    #Include <Constants.au3>
    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
    Case $msg = $TRAY_EVENT_PRIMARYDOUBLE
    Run('notepad')
    EndSelect
    WEnd

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

    Exit

    [/autoit]

    So long,

    Mega

  • Hi Mega,

    ja so ungefährt habe ich mir das auch schon gedacht, aber es erscheint beim Linksklick trotzdem das Menü (und das soll es nicht),wenn ich es so versuche ...

    Spoiler anzeigen
    [autoit]

    #Include <Constants.au3>
    Opt("TrayMenuMode", 1) ; Default tray menu items (Script Paused/Exit) will not be shown.

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

    TraySetState()

    While 1
    $msg = TrayGetMsg()
    Select
    Case $msg = 0
    ContinueLoop
    Case $msg = $aboutitem
    MsgBox(64, "About:", "AutoIt3-Tray-sample")
    Case $msg = $exititem
    ExitLoop
    Case $msg = $TRAY_EVENT_PRIMARYUP ; So soll es eigentlich starten
    Run('notepad')
    EndSelect
    WEnd

    Exit

    [/autoit]

    Ich habe mir auch das hier angesehen...

    Spoiler anzeigen
    [autoit]

    #include <Constants.au3>
    #NoTrayIcon

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

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

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

    $exit = TrayCreateItem("Exit")
    TrayItemSetOnEvent(-1,"ExitEvent")

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

    TraySetOnEvent($TRAY_EVENT_PRIMARYDOUBLE,"SpecialEvent")
    TraySetOnEvent($TRAY_EVENT_SECONDARYUP,"SpecialEvent")

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

    TraySetState()

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

    While 1
    Sleep(10) ; Idle loop
    WEnd

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

    Exit

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

    ; Functions
    Func SpecialEvent()
    Select
    Case @TRAY_ID = $TRAY_EVENT_PRIMARYDOUBLE
    Msgbox(64,"SpecialEvent-Info","Primary mouse button double clicked.")
    Case @TRAY_ID = $TRAY_EVENT_SECONDARYUP
    Msgbox(64,"SpecialEvent-Info","Secondary mouse button clicked.")
    EndSelect
    EndFunc

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

    Func ExitEvent()
    Exit
    EndFunc

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


    ..., aber den Code verstehe ich nicht so ganz... :irre:
    Kommentare im Code wären ganz hilfreich. :rolleyes:

    Gruß


    Einmal editiert, zuletzt von Greenhorn (14. April 2007 um 19:55)

    • Offizieller Beitrag

    Hi,

    sorry. :)

    Hatte die wichtigste Zeile vergessen.

    Spoiler anzeigen
    [autoit]

    #Include <Constants.au3>
    Opt("TrayMenuMode", 1) ; Default tray menu items (Script Paused/Exit) will not be shown.
    TraySetClick(16)

    [/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
    Case $msg = $TRAY_EVENT_PRIMARYDOWN
    Run('notepad')
    EndSelect
    WEnd

    [/autoit]

    So long,

    Mega