:arrow: click to browse, Shift + click to select.
It can have varied uses, what i've posted here is sort of a template to be used in scripts. by the way its very easy to make it show files too or just files or files of certain type (like *.lnk to show only shortcuts).
;___________________________________________ ;____Folder Menu____________________________ ; Select startup folder here Dir = c: ; Clicking on the menu title takes you one folder out MenuTitle = [..] ;___________________________________________ ; Change script below only if you know what ; you're doing. SetFormat, float, 0.0 SetBatchLines, 10ms HotKey, *~LButton, MenuClick HotKey, *~LButton, Off MouseGetPos, fmX, fmY ShowMenu: Menu = %MenuTitle% MenuItems = paths = Loop, %dir%\*.*, 2 paths = %paths%`n%A_LoopFileFullPath% StringTrimLeft, paths, paths, 1 sort, paths Loop, parse, paths, `n { StringGetPos, spos, A_LoopField, \, R spos ++ StringTrimLeft, FileName, A_LoopField, %spos% MenuItem%A_Index% = %FileName% MenuItem%A_Index%path = %A_LoopField% MenuItems ++ Menu = %Menu%`n%FileName% } HotKey, *~LButton, On Sleep, 100 ; a fix to display menu properly (thanx Chris) ToolTip, %Menu%, %fmX%, %fmY% WinActivate, %MenuTitle% Return MenuClick: GetKeyState, State, Shift HotKey, *~LButton, Off IfWinNotActive, %MenuTitle% { ToolTip ExitApp } CoordMode, Mouse, Relative MouseGetPos, mX, mY ToolTip mY -= 3 ;space after which first line starts mY /= 13 ;space taken by each line IfLess, mY, 0, ExitApp IfEqual, mY, 0 { StringLen, Len, Dir StringGetPos, SPos, Dir, \, R Len -= %SPos% StringTrimRight, Dir, Dir, %Len% Goto, ShowMenu } IfGreater, mY, %MenuItems%, ExitApp StringTrimLeft, Dir, MenuItem%mY%path, 0 IfEqual, State, D { StringTrimLeft, Dir, MenuItem%mY%path, 0 msgbox, %DIR% ExitApp } GoSub, ShowMenu Return ;___________________________________________