Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

I would like to run the Run... dialog (the Win+R) from a batch command? There is an shotcut to it in C:\Users\USER\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\System Tools but that shotcut goes nowhere, the target is just "Run..." and the target directory is my desktop.

How can I run the dialog from a command?

share|improve this question
add comment

3 Answers

up vote 4 down vote accepted

Vista or later

If you are on Windows Vista or later, it will come with PowerShell. The PowerShell one-liner (New-Object -ComObject "Shell.Application").FileRun() will work.

You can run this directly from the legacy command line (or within a batch file) with the following:

powershell -c (New-Object -ComObject "Shell.Application").FileRun()

This is an adaptation of the VBScript command outlined below.


Pre-Vista

For older versions of Windows (this will also work in newer versions, but requires an additional file), you can do this via VBScript, using the Shell object:

dim oShell = CreateObject("shell.application")
oShell.FileRun()

Shrinking it into one line:

CreateObject("shell.application").FileRun()

Simple put that line into its own plain text file and save it with the extension .vbs, e.g. ShowRunDialog.vbs. Then run ShowRunDialog.vbs from the command line.

This indirectly runs the RunFileDlg function contained within shell32.dll. See here.

share|improve this answer
add comment

I am only an amateur programmer, but it strikes me it would be shorter and more efficient to put the command for what ever you want in the batch file, rather than the risky procedure of calling for the Run dialog box to open.

Bad things could happen to your batch file if a user was present when the .bat ran. It just seems neater programming to give a command-line instruction from within that batch file.

share|improve this answer
add comment

The laziest way is to use AutoHotKey to literally send the Win+R command to the operating system:

SendInput, {LWin down}r{LWin up}

I went ahead and uploaded a ZIP containing an AutoHotKey script and a compiled .exe of the script. I apologize if there's a "better" way of handling this; once I find a way that works I move on to the next thing!

share|improve this answer
1  
A disadvantage of this approach is it requires Explorer to be running and handle the Win + R hotkey. If Explorer is not running, nothing will happen - while the run dialog does not depend on Explorer, this hotkey does. –  Bob Jan 13 '13 at 12:41
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.