如何在“打开方式”列表中找到程序的位置?

如何在“打开方式”列表中找到程序的位置?

我需要删除一个程序打开用列表(我需要用较新版本替换自定义程序,但我不记得文件.exe在哪里)。

我怎样才能在我的计算机上找到该程序的位置?

由于某种原因,即使搜索所有.exe文件,我也无法通过应用程序名称找到它。该程序没有安装程序,它只是一个.exe你放在你想要的地方。

答案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
    )
)

相关内容