When a user clocks on the item the file will run.
When a Big Folder is Given it takes some time to initialize the menus so Wait for a INITIALIZATION COMPLETE MESSAGE IN TRAYTIP
SetBatchLines, 3000 ;________CONFIG SECTION rootdir = %temp% ;Change The Directory Path Here updatealways = 0 ;Use 1 to update database always and 0 to disable automatic updating htkey = ^1 ;Change this to your own hotkey to display menu ( currently it is Ctrl+1 ) ;_________________DONOT CHANGE ANYTHING BELOW Hotkey,%htkey%,showmenu SetTimer,ini,500 TrayTip,DirMenu,Initializing, ifnotexist %A_ScriptDir%\database.txt gosub, createdatabase Menu,DirMenu,add,%rootdir%,godir Menu,DirMenu,disable,%rootdir% Menu,DirMenu,add,-`:`:Open Directory`:`:-,godir if updatealways = 1 gosub createdatabase goto createmenu CreateMenu: Loop, Read, database.txt { isfile = 0 StringReplace,Line,A_LoopReadLine,%rootdir%\, ifinstring Line,. isfile = 1 if isfile = 0 { StringGetPos,pos,Line,\,R StringLeft,pardir,Line,%pos% StringReplace,dir,Line,%pardir%, StringReplace,dir,dir,\ Menu,%Line%,add,-`:`:Open Directory`:`:-,godir if pardir = pardir = DirMenu Menu,%pardir%,add,%dir%,:%Line% } else { StringGetPos,pos,Line,\,R StringLeft,pardir,Line,%pos% StringReplace,file,Line,%pardir%, StringReplace,file,file,\ if pardir = pardir = DirMenu Menu,%pardir%,add,%file%,go } } SetTimer,ini,off TrayTip return go: if A_ThisMenu = DirMenu run %rootdir%\%A_ThisMenuItem% else run %rootdir%\%A_ThisMenu%\%A_ThisMenuItem% return godir: if A_ThisMenu = DirMenu run %rootdir% else run %rootdir%\%A_ThisMenu% return createdatabase: runwait, %comspec% /c dir /s /b /os /a:d "%rootdir%" > "%A_ScriptDir%\database.txt",,hide runwait, %comspec% /c dir /s /b /os /a:-d "%rootdir%" >> "%A_ScriptDir%\database.txt",,hide return showmenu: Menu,DirMenu,show return ini: TrayTip,DirMenu,Initializing,30 return