11

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?

richie
  • 221

5 Answers5

11

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.

Bob
  • 63,170
11

This command can be launched from any program/script to show "Run" dialog:

explorer.exe Shell:::{2559a1f3-21d7-11d4-bdaf-00c04f60b9f0}
CoolCmd
  • 309
7

Below works for my 32-bit Windows:

c:\WINDOWS\system32\rundll32.exe shell32.dll,#61

Any one knows the 64-bit version?

DavidPostill
  • 162,382
2

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.

Guy Thomas
  • 3,348
1

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!

Oliver Salzburg
  • 89,072
  • 65
  • 269
  • 311