Heres a script I threw together - basically when you hit #space it starts an unobtrusive run tooltip, all the functions of the normal run command are there. To get an idea - hit #space and then type in c:\ - your contents for your c drive will be listed, then as you type it filters out the results. You can also use the down/up arrows to scroll through your results. Anyways, any feedback would be great, thanks!
Also, instead of hitting enter to open the command, you can also hit ctrl+e(edit selected file) ctrl+p(view selected properties) and ctrl+f(open a find window for the selected folder)
Code:
;quickrunner -jw
#space::
ToolTip, _
Sleep, 10
Tooltip, R_
Sleep, 10
ToolTip, Ru_
Sleep, 10
ToolTip, Run_
Sleep, 10
restartrun:
wingettitle, returntome, a
winactivate, ahk_class Shell_TrayWnd
commandline =
loop
{
list=
newlist=
dir=
key=
tempgram=
newcommandline=
keypressed =
errorlevel =
edit =
Transform, CtrlE, Chr, 5
Transform, CtrlP, Chr, 16
Transform, CtrlF, Chr, 6
stringreplace, dir, commandline, `n,
stringlen, is, commandline
StringGetPos, wis, dir, \ , R1
wis++
is-=%wis%
stringtrimleft, look, dir, %wis%
stringtrimright, dir, dir, %is%
ifexist, %dir%
{
list = `n-----------------------------------
loop, %dir%\*.*, 1
ifinstring, a_loopfilename, %look%
list = %list%`n%a_loopfilename%
Tooltip, Run:%commandline%_%list%
newlist = %list%
}
else
Tooltip, Run:%commandline%_%newlist%
Input, key, L1 B M, {space}{backspace}{esc}{down}{up}{left}
keypressed = %errorlevel%
if keypressed = endkey:up
loop, parse, newlist, `n
pos = %a_index%
if keypressed = endkey:down
pos = 3
if pos > 0
{
stringlen, is, commandline
StringGetPos, wis, commandline, \ , R1
wis++
is-=%wis%
stringtrimright, newcommandline, commandline, %is%
loop
{
loop, parse, newlist, `n
{
if pos = %a_index%
tempgram = %a_loopfield%
size = %a_index%
}
Tooltip, Run:%newcommandline%%tempgram%_%newlist%
Input, key, L1 B M, {space}{backspace}{esc}{down}{up}{left}
keypressed = %errorlevel%
if errorlevel != endkey:up
if errorlevel != endkey:down
break
if errorlevel = endkey:down
{
if pos <= %size%
pos++
if pos > %size%
pos = 3
}
if errorlevel = endkey:up
{
if pos > 2
pos--
if pos = 2
pos = %size%
}
}
pos = 0
commandline = %newcommandline%%tempgram%
stringreplace, commandline, commandline, `n, , All
}
if keypressed = endkey:left
{
Loop
{
StringGetPos, wis, commandline, \ , R1
stringlen, is, commandline
wis++
if wis = %is%
{
stringtrimright, commandline, commandline, 1
continue
}
break
}
is-=%wis%
stringtrimright, commandline, commandline, %is%
}
if key = %CtrlE%
{
edit = 1
break
}
if key = %CtrlP%
{
edit = 2
break
}
if key = %CtrlF%
{
edit = 3
break
}
if key = `n
break
if keypressed = Endkey:space
{
commandline = %commandline%%a_space%.
stringtrimright, commandline, commandline, 1
}
if keypressed = Endkey:backspace
stringtrimright, commandline, commandline, 1
if keypressed = Endkey:escape
break
else if keypressed != Endkey:space
commandline = %commandline%%key%
if commandline =
goto, restartrun
}
Tooltip
if keypressed != endkey:escape
{
stringreplace, commandline, commandline, `n, , All
if edit = 1
run, edit "%commandline%"
else if edit = 2
run, properties "%commandline%"
else if edit = 3
run, find "%commandline%"
else
run, "%commandline%"
Sleep, 1000
}
return