"연결 프로그램" 목록에서 프로그램의 위치를 ​​찾는 방법은 무엇입니까?

"연결 프로그램" 목록에서 프로그램의 위치를 ​​찾는 방법은 무엇입니까?

프로그램을 제거해야 합니다.다음으로 열기목록(사용자 정의 프로그램을 최신 버전으로 교체해야 하는데 파일이 어디에 있는지 기억이 나지 않습니다 .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
    )
)

관련 정보