sulfurious Posted April 19, 2008 Posted April 19, 2008 Greetings. A while back I was searching for a way to use a hotkey to bring the tray menu up and move the mouse or focus to it. I was able (with help) to figure that out. I was starting the program via the startup folder. When I used the hotkey, the mouse moved to the tray and I could either use the arrow keys or the mouse to choose which option. I was playing with some msstyles to change the color scheme etc of my xp rig. I downloaded something call uxtheme multipatcher to be able to edit my own themes. For some reason now when I use my hotkey, it actually moves the tray menu to my mouse cursor, exactly like a context menu would. I love this. If I mess with the original script and run it from scite, or I shut down my program and then run a traymenu script of similar style from scite, it no longer does this. A reboot however seems to cure the problem and it is back to making the tray menu act like a context menu. This is extremely handy to have working. I have created dynamic tray items based off an .ini file, and unlike a context menu, I can do many autoit functions right from the script. I will post an example of basically what I am doing, albeit less the .ini and dynamic item creation. Other than that, it is very similar to what I might be doing in my program. Can anyone explain why this is happening, and possibly how I would go about re-creating this again. I would hate to reformat (which I like to do often) and never see this again. Thank you. Sul. expandcollapse popup#Include <GuiToolBar.au3> Opt("TrayOnEventMode",1) Opt('TrayMenuMode',1) Opt("GUIOnEventMode", 1) HotKeySet('b','_trayUP') $settingsitem = TrayCreateMenu("Settings") $displayitem = TrayCreateItem("Display", $settingsitem) $printeritem = TrayCreateItem("Printer", $settingsitem) TrayCreateItem("") $aboutitem = TrayCreateItem("About") TrayCreateItem("") $exititem = TrayCreateItem("Exit") TrayItemSetOnEvent(-1,'_exit') $end = 1 While $end = 1 Sleep(500) WEnd Func _trayUP() Activate('Autoit - tray_test.au3'); non-compiled ;~ Activate('tray_test.exe'); compiled EndFunc Func Activate($taskName) AutoItSetOption("WinSearchChildren", 1) AutoItSetOption("WinTitleMatchMode", 4) $hWnd = WinGetHandle("[TITLE:Notification Area]") For $i = 0 To _GUICtrlToolbar_ButtonCount($hWnd) - 1 If _GUICtrlToolbar_GetButtonText($hWnd,$i) = $taskName Then WinActivate("[TITLE:Notification Area]") _GUICtrlToolbar_SetHotItem($hWnd, _GUICtrlToolbar_CommandToIndex($hWnd, $i)) Sleep(200) Send("{ENTER}") ExitLoop EndIf Next EndFunc Func _exit() $end = 0 Exit EndFunc
Zedna Posted April 19, 2008 Posted April 19, 2008 (edited) Look at _SysTray_ClickItem Edited April 19, 2008 by Zedna Resources UDF ResourcesEx UDF AutoIt Forum Search
sulfurious Posted April 21, 2008 Author Posted April 21, 2008 Thanks Zedna. That was exactly what I was looking for. Sul
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now