[実行]ダイアログは、アプリケーションの場所をどのように認識しますか?


72

パワーユーザーとして、[実行]ダイアログを頻繁に使用します。

PATH環境変数にある次のコマンドが機能する理由を理解できます。

mspaint
diskmgmt.msc
explorer

これらのコマンドはCMDでも機能します。

以下のコマンドは実行中に動作しますが、それらは内PATHにはなく、CMDでは動作しません。

firefox
winword
iexplore

Runは、これらのファイルの場所をどのように知るのですか?

回答:


90

[実行]ダイアログからコマンドを実行すると、システムは次のApp Pathsレジストリキーを確認します。

HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths

そして

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths

HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\filezilla.exe

(default) 値データには、実行可能ファイルへのフルパスがあります。

見つからない場合は、PATHに含まれる各フォルダーを調べます。

一方、コマンドプロンプトはこれらのレジストリキーを参照しません。PATHのみを検索します。


5
ああ、これはおそらく、同じ名前の複数のプログラムをオプション付きで開くように動作できない理由を説明しています。貧弱なデザイン。
-curiousdannii

2
はい、ほとんど。ただし、[ダイアログで開く]からの読み取りHKCR\ApplicationsRegisteredApplications
w32sh

4
マイクロソフトは、これに関するビデオを提供しました:channel9.msdn.com/Shows/Defrag-Tools/Defrag-Tools-133-App-Paths
magicandre1981

6
もちろんstart、アプリのパスを検索するビルトインを使用できます。
ニール

1
これはここでかなりよく文書化されています。私はまた、cmdはその検索を行う方法を説明してきたここに -それは、Win32 APIには異なる特殊な例ビットです。
ボブ

4

w32shの答えは、[実行]ダイアログで検索される追加のキーがここにあることを正しく指摘しています。

  • HKEY_CURRENT_USER \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ App Paths \
  • HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ App Paths \

これらのパスの公式ドキュメントがあります

これらのキーに関する重要な事実は、キーの名前(「filezilla.exe」など)が絶対パスと一致する必要がないことです。Windows 7では、値は、ショートカットの「ターゲット」として使用できるものに似た、単純なコマンドラインでさえあります。

たとえば、私はレジストリにこれを使用していました。

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\jedit.exe]
@="\"C:\\WINDOWS\\system32\\javaw.exe\" -Xms24M -Xmx512M -jar \"C:\\Program Files\\jEdit\\jedit.jar\" -reuseview"

Windows 10でこの機能を動作させることはできませんが、バッチファイルを含む任意のファイルを指定できます。たとえば、

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\jedit.exe]
@="C:\\Program Files\\jEdit\\run-jedit.bat"

これにより、「jedit」または「jedit C:\ foo \ bar \ something.txt」と入力して、適切なオプションでJVMを実行し、jEditを起動/再利用できます。

私が見る限り、キー名は「.exe」で終わる必要があるため、「abc」のエイリアスを作成するには、「。exe」ファイルを指していない場合でもキー「abc.exe」を作成します。


実行可能ファイル名の後に追加のスイッチを使用すると、ここでは機能しません。
w32sh 16

@ w32shうーん、Win 10で変更されたと思います:(
IMSoP

-1

コマンドラインには、PATHまたは%PATH%という環境変数があります。検索する一連の場所が含まれています。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.