[実行...]ダイアログ( Win+R)バッチコマンドから? C:\Users\USER\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\System Tools
にショットカットがありますが、そのショットカットはどこにも行きません。ターゲットは「実行...」だけで、ターゲットディレクトリは私のデスクトップです。
コマンドからダイアログを実行するにはどうすればよいですか?
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
関数を間接的に実行します。 こちら を参照してください。
このコマンドは、任意のプログラム/スクリプトから起動して、「実行」ダイアログを表示できます。
Explorer.exe Shell:::{2559a1f3-21d7-11d4-bdaf-00c04f60b9f0}
以下は私の32ビットWindowsで動作します。
c:\WINDOWS\system32\rundll32.exe Shell32.dll,#61
64ビットバージョンを知っている人はいますか?
私はアマチュアプログラマーですが、[実行]ダイアログボックスを開くという危険な手順よりも、必要なコマンドをバッチファイルに入れる方が短く効率的だと思います。
.batの実行時にユーザーが存在した場合、バッチファイルに悪いことが起こる可能性があります。そのバッチファイル内からコマンドライン命令を与えるのは、ちょうどいいプログラミングのようです。
最も怠惰な方法は、 AutoHotKey を使用して、文字通りWin + Rコマンドをオペレーティングシステムに送信することです。
SendInput, {LWin down}r{LWin up}
私は先に進み、 Zipをアップロード AutoHotKeyスクリプトとスクリプトのコンパイル済み.exe
を含みます。これを処理する「より良い」方法がある場合は、お詫び申し上げます。うまくいく方法を見つけたら、次のことに進みます!