Jump to content

Solving the Tray problem


Recommended Posts

I have this little code that repeats every x min but i would like an option in the tray menu so i can skip the waiting time and call the function directly. But i have no clue on how to approach this.

Any help is very welcome. Thank you.

Opt("TrayMenuMode",1)
Global $ini = "config.ini"
$delay = IniRead($ini,"CommonOptions","delay",5)
$delay = $delay*60000

While 1
start()
Sleep($delay)
WEnd

Func ExitEvent()
Exit
EndFunc
Link to comment
Share on other sites

  • Moderators

guydol,

I would do it like this: ;)

#include <Constants.au3>

Opt("TrayMenuMode", 1)
Opt("TrayOnEventMode", 1) ; <<<<<<<<<<<<<<<<<<<

HotKeySet("{ESC}", "ExitEvent")

TraySetOnEvent($TRAY_EVENT_PRIMARYUP, "Start") ; <<<<<<<<<<<<<<<<<<<

Global $ini = "config.ini"
$delay = IniRead($ini, "CommonOptions", "delay", 5)
$delay = $delay * 1000 ; Just for testing

While 1
    start()
    Sleep($delay)
WEnd

Func start()
    MsgBox(0, "Hi", "Started")
EndFunc

Func ExitEvent()
    Exit
EndFunc   ;==>ExitEvent

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 comment
Share on other sites

guydol,

Another possible solution (...bowing to M23...)

#include <Constants.au3>
#include <date.au3>
#NoTrayIcon
Opt("TrayOnEventMode", 1)
Opt("TrayMenuMode", 1)
Local $exit =  TrayCreateItem("Exit")
    TrayItemSetOnEvent(-1, "_Exit")
Local $manual = TrayCreateItem("Manual Run")
    TrayItemSetOnEvent(-1, "_Manual")
    TraySetState()
$wait_time = 5000
While 1
    Sleep($wait_time)
 _Timed()
WEnd
Exit
Func _Manual()
 ConsoleWrite('Manual run at - ' & _now() & @lf)
 TrayItemSetState($manual,$tray_unchecked)
endfunc
Func _Timed()
 ConsoleWrite('Timed  run at - ' & _now() & @lf)
endfunc
Func _Exit()
    Exit
EndFunc

Incidentally, I noticed that if the tray icon is clicked the script appears to stop until a tray item is selected.

kylomas

Forum Rules         Procedure for posting code

"I like pigs.  Dogs look up to us.  Cats look down on us.  Pigs treat us as equals."

- Sir Winston Churchill

Link to comment
Share on other sites

  • Moderators

kylomas,

You are quite correct. Tray (and GUI) menus are modal and halt script execution until a selection is made or the menu cancelled. ;)

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 comment
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
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...