Hi,
I'm hoping someone can point me in the right direction. I need to be able to Set a dynamicly created TrayItem as the currently selected item based on information I will have stored on the last use of a program. Consider this example:
#include <Constants.au3>
#NoTrayIcon
; set script wide options
Opt("WinTitleMatchMode", 1) ;1=start, 2=subStr, 3=exact, 4=advanced, -1 to -4=Nocase
Opt("TrayMenuMode", 1) ; Default tray menu items (Script Paused/Exit) will not be shown.
Opt("TrayOnEventMode", 1)
; pretend I am populating this array from some external semi-dynamic data
Global $a_Things[6]
For $x = 1 To UBound($a_Things, 1) - 1
$a_Things[$x] = "Item " & $x
Next
$submenu = TrayCreateMenu("Submenu")
For $y = 1 To UBound($a_Things, 1) - 1
TrayCreateItem($a_Things[$y], $submenu, -1, 1)
TrayItemSetOnEvent(-1, "_SubmenuChoice")
Next
TrayCreateItem("")
$aboutitem = TrayCreateItem("About")
TrayItemSetOnEvent(-1, "_About")
TrayCreateItem("")
$exititem = TrayCreateItem("Exit")
TrayItemSetOnEvent(-1, "_Exit")
TraySetState()
While 1
Sleep(1000)
WEnd
Func _Exit()
Exit
EndFunc ;==>_Exit
Func _About()
MsgBox(4096, "About", "Blah Blah Blah")
EndFunc ;==>_About
Func _SubmenuChoice()
MsgBox(4096, "Info", "Menu Choice:" & @TRAY_ID)
EndFunc ;==>_SubmenuChoice
I can work with the @TRAY_ID value to do the actions I need within the program, but I want to save their choice, and re-use it later.
Now, I know how to do that (writing to and reading from the registry for example), but what I do not know how to do, is to programatically mark the submenu item as the current selected choice upon loading, based on the info that I have stored.