Jump to content

How to catch a double click in the tray icon and execute a command?


Recommended Posts

  • Moderators

mike2003,

The Help file example works for me.

Did you add the 

Opt("TrayMenuMode", 3)

line to your own script to prevent the default tray items from appearing?

M23

Public_Domain.png.2d871819fcb9957cf44f4514551a2935.png Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind

Open spoiler to see my UDFs:

Spoiler

ArrayMultiColSort ---- Sort arrays on multiple columns
ChooseFileFolder ---- Single and multiple selections from specified path treeview listing
Date_Time_Convert -- Easily convert date/time formats, including the language used
ExtMsgBox --------- A highly customisable replacement for MsgBox
GUIExtender -------- Extend and retract multiple sections within a GUI
GUIFrame ---------- Subdivide GUIs into many adjustable frames
GUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView items
GUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeView
Marquee ----------- Scrolling tickertape GUIs
NoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxes
Notify ------------- Small notifications on the edge of the display
Scrollbars ----------Automatically sized scrollbars with a single command
StringSize ---------- Automatically size controls to fit text
Toast -------------- Small GUIs which pop out of the notification area

 

Link to post
Share on other sites
  • Moderators

mike2003,

I can assure you that the example does work. - please check that you have correctly copied the  code

M23

Public_Domain.png.2d871819fcb9957cf44f4514551a2935.png Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind

Open spoiler to see my UDFs:

Spoiler

ArrayMultiColSort ---- Sort arrays on multiple columns
ChooseFileFolder ---- Single and multiple selections from specified path treeview listing
Date_Time_Convert -- Easily convert date/time formats, including the language used
ExtMsgBox --------- A highly customisable replacement for MsgBox
GUIExtender -------- Extend and retract multiple sections within a GUI
GUIFrame ---------- Subdivide GUIs into many adjustable frames
GUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView items
GUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeView
Marquee ----------- Scrolling tickertape GUIs
NoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxes
Notify ------------- Small notifications on the edge of the display
Scrollbars ----------Automatically sized scrollbars with a single command
StringSize ---------- Automatically size controls to fit text
Toast -------------- Small GUIs which pop out of the notification area

 

Link to post
Share on other sites

Sure. I’m not typing with my hands ;) I tried both the site and the manual. If you add a menu, then the AutoIt cannot pick up Event. Probably this is how it worked in old versions and no one checked this example for new ones.

Link to post
Share on other sites
  • Moderators

mike2003,

For the THIRD time - the example works perfectly for me, and I cannot remember anyone else ever complaining about this function not working. So it must be something different in your system - or you are not running the same code as in the Help file.

Does this simplified version work for you:

#include <MsgBoxConstants.au3>
#include <TrayConstants.au3>

Opt("TrayMenuMode", 3)
Opt("TrayOnEventMode", 1)

Example()

Func Example()

    TrayCreateItem("Exit")
    TrayItemSetOnEvent(-1, "ExitScript")

    TraySetOnEvent($TRAY_EVENT_PRIMARYDOUBLE, "TrayEvent")

    TraySetState($TRAY_ICONSTATE_SHOW)

    While 1
        Sleep(10)
    WEnd
    
EndFunc   ;==>Example

Func TrayEvent()
    Switch @TRAY_ID
        Case $TRAY_EVENT_PRIMARYDOUBLE
            MsgBox($MB_SYSTEMMODAL, "Hi", "Icon double clicked")
    EndSwitch
EndFunc   ;==>TrayEvent

Func ExitScript()
    Exit
EndFunc   ;==>ExitScript

M23

Public_Domain.png.2d871819fcb9957cf44f4514551a2935.png Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind

Open spoiler to see my UDFs:

Spoiler

ArrayMultiColSort ---- Sort arrays on multiple columns
ChooseFileFolder ---- Single and multiple selections from specified path treeview listing
Date_Time_Convert -- Easily convert date/time formats, including the language used
ExtMsgBox --------- A highly customisable replacement for MsgBox
GUIExtender -------- Extend and retract multiple sections within a GUI
GUIFrame ---------- Subdivide GUIs into many adjustable frames
GUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView items
GUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeView
Marquee ----------- Scrolling tickertape GUIs
NoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxes
Notify ------------- Small notifications on the edge of the display
Scrollbars ----------Automatically sized scrollbars with a single command
StringSize ---------- Automatically size controls to fit text
Toast -------------- Small GUIs which pop out of the notification area

 

Link to post
Share on other sites
Posted (edited)
On 6/21/2021 at 6:48 PM, Melba23 said:

Does this simplified version work for you

No. But this option with TraySetClick suited me. LMB - func, RMB - menu.

#include <Constants.au3>
#include <GuiConstantsEx.au3>

TrayCreateItem("About")
TrayCreateItem("Exit")
TrayItemSetOnEvent(-1, "ExitScript")

Opt('TrayOnEventMode', 1)
Opt("TrayAutoPause",0)
Opt("TrayMenuMode", 2)

$hGui = GUICreate('Test', 300, 300)
_ShowHide()
TraySetOnEvent($TRAY_EVENT_PRIMARYDOUBLE, '_ShowHide')
TraySetClick (16)
Do
Until GUIGetMsg() = $GUI_EVENT_CLOSE

Func _ShowHide()
    If BitAND(WinGetState($hGui), 2) Then
        GUISetState(@SW_HIDE, $hGui)
    Else
        GUISetState(@SW_SHOW, $hGui)
    EndIf
EndFunc   ;==>_ShowHide

Func ExitScript()
    Exit
EndFunc   ;==>ExitScript


 

Edited by mike2003
Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...