Мне нужно удалить программу вОткрыть сlist (мне нужно заменить пользовательскую программу на более новую версию, и я не помню, где .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
)
)