「開く」リストでプログラムの場所を見つけるにはどうすればいいですか?

「開く」リストでプログラムの場所を見つけるにはどうすればいいですか?

プログラムを削除したいのですが開くリスト (カスタム プログラムを新しいバージョンに置き換える必要がありますが、ファイルの場所がわかりません.exe)。

コンピュータ上でこのプログラムの場所を見つけるにはどうすればよいですか?

何らかの理由で、すべてのファイルを検索しても、アプリケーション名では見つかりません.exe。プログラムにはインストーラーがなく、.exe必要な場所に置くだけです。

答え1

「開く...」リストは、レジストリ内の 2 つの別々のキーに保存されます。1 つのキーには、特定のファイル拡張子に使用するアプリケーションのリストが保存され、もう 1 つのキーには、特定のアプリケーションの場所が保存されます。

これらを調べることもできますregedit.exe(誤ってレジストリを変更する可能性があるためお勧めしません)。または、コマンド ラインからクエリすることもできます。

> reg query HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.php\OpenWithList

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.php\OpenWithList
    a    REG_SZ    Dreamweaver.exe
    MRUList    REG_SZ    ba
    b    REG_SZ    notepad++.exe


> reg query HKEY_CLASSES_ROOT\Applications\notepad++.exe\shell\open\command /ve

HKEY_CLASSES_ROOT\Applications\notepad++.exe\shell\open\command
    (Default)    REG_SZ    "C:\Program Files\Notepad++\notepad++.exe" "%1"

私はほとんどの作業を実行するために非常に短いバッチ ファイルを作成しました。

@echo off
SET _Ext=%~1
IF "%_Ext%"=="" SET /P _Ext=Enter file extension to query: 
for /f "tokens=2*" %%a in ('reg query "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\%_Ext%\OpenWithList" ^| FIND /v "MRUList"') do (
    echo|set /p=%%b: 
    for /f "tokens=2*" %%g in ('reg query "HKEY_CLASSES_ROOT\Applications\%%b\shell\open\command" /ve ^| FIND /v "MRUList"') do (
        echo %%h
    )
)

関連情報