web-dev-qa-db-ja.com

コマンドから[実行...]ダイアログを開く

[実行...]ダイアログ( Win+R)バッチコマンドから? C:\Users\USER\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\System Toolsにショットカットがありますが、そのショットカットはどこにも行きません。ターゲットは「実行...」だけで、ターゲットディレクトリは私のデスクトップです。

コマンドからダイアログを実行するにはどうすればよいですか?

7
richie

Vista以降

Windows Vista以降を使用している場合は、PowerShellが付属しています。 PowerShellワンライナー(New-Object -ComObject "Shell.Application").FileRun()が機能します。

これは、従来のコマンドラインから直接(またはバッチファイル内で)次のように実行できます。

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

これは、以下に概説するVBScriptコマンドを応用したものです。


プレビスタ

古いバージョンのWindowsの場合(これは新しいバージョンでも機能しますが、追加のファイルが必要です)、Shellオブジェクトを使用してVBScriptでこれを行うことができます。

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

それを1行に縮小します:

CreateObject("Shell.application").FileRun()

単純にその行を独自のプレーンテキストファイルに入れ、拡張子.vbsを付けて保存します。 ShowRunDialog.vbs。次に、コマンドラインからShowRunDialog.vbsを実行します。

これは、Shell32.dllに含まれるRunFileDlg関数を間接的に実行します。 こちら を参照してください。

8
Bob

このコマンドは、任意のプログラム/スクリプトから起動して、「実行」ダイアログを表示できます。

Explorer.exe Shell:::{2559a1f3-21d7-11d4-bdaf-00c04f60b9f0}
8
CoolCmd

以下は私の32ビットWindowsで動作します。

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

64ビットバージョンを知っている人はいますか?

5
James Yang

私はアマチュアプログラマーですが、[実行]ダイアログボックスを開くという危険な手順よりも、必要なコマンドをバッチファイルに入れる方が短く効率的だと思います。

.batの実行時にユーザーが存在した場合、バッチファイルに悪いことが起こる可能性があります。そのバッチファイル内からコマンドライン命令を与えるのは、ちょうどいいプログラミングのようです。

2
Guy Thomas

最も怠惰な方法は、 AutoHotKey を使用して、文字通りWin + Rコマンドをオペレーティングシステムに送信することです。

SendInput, {LWin down}r{LWin up}

私は先に進み、 Zipをアップロード AutoHotKeyスクリプトとスクリプトのコンパイル済み.exeを含みます。これを処理する「より良い」方法がある場合は、お詫び申し上げます。うまくいく方法を見つけたら、次のことに進みます!

1