Windows 파일 확장자, 애플리케이션 간 연결

Windows OS 는 기본 애플리케이션이라는 기능을 제공하며, 특정 확장자의 파일 타입에 대해 지정된 프로그램을 연결하여 실행한다. 예를 들어 .pdf 확장자 파일을 더블 클릭하면, 사용자 설정에 따라 Acrobat Reader 에 의해 문서가 로딩 될 수도 있고, ezPDF 에 의해 로딩될 수도 있다.
이러한 정보는 다음과 같은 Windows 레지스트리 경로에 저장된다.
HKEY_CLASSES_ROOT\Software\Classes
HKEY_LOCAL_MACHINE\Software\Classe
HKEY_CURRENT_USER\Software\Classes
cmd 의 assoc
명령어는 HKEY_LOCAL_MACHINE\Software\Classes
경로에서 파일 확장자와 연결된 파일 유형을 찾아 출력한다.

ftype
명령어는 HKEY_LOCAL_MACHINE\Software\Classes
경로에서 지정된 파일 유형을 실행하는 실행 명령어를 출력한다.

Windows OS 가 레지스트리를 탐색하며 파일 타입을 찾는 과정을 보여준다.
HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FileExts\[EXT]\UserChoice\ProgId
경로에서 ProgId를 찾는다. 존재하지 않으면 5번으로 이동한다.- ProgId 가 파일 클래스(e.g.
Python.File
) 이면 6번으로 이동한다. 만약 ProgId 가 애플리케이션 ID(e.g.Applications\SciTE.exe
) 이면 3번으로 이동한다 - Application ID 값을 따라 커맨드 명령어를 찾는다. 예를 들어 Application ID 값이
Applications\SciTE.exe
일 때 커맨드 명령어는HKEY_CLASSES_ROOT\Applications\SciTE.exe\shell\open\command
에 존재한다. - 종료.
Computer\HKEY_CLASSES_ROOT\[EXT]
레지스트리 값에서 파일 클래스의 기본 값을 찾는다. e.g.Python.File
- 파일 클래스를 이용하여 기본 커맨드 값을 찾는다. 예를 들어 파일 클래스 값이
Python.File
이면HKEY_CLASSES_ROOT\Python.File\shell
를 찾는다. - 6번에서 찾는 레지스트 중
edit
Key의 값은 파일을 실행했을 때 기본으로 실행되는 명령어를 보여준다.edit
이외의 명령어는 탐색기에서 파일을 우클릭했을 때 보여지는 다른 동작들을 지정한다.