단일 패키지 작성 예제

샘플 PUASample.msi 사용자별 또는 Windows Server 2008 R2 및 Windows 7의 컴퓨터별 설치 컨텍스트에 설치할 수 있는 이중 용도의 Windows Installer 5.0 패키지의 예입니다. 이 샘플 패키지는 단일 패키지 작성에 설명된 개발 지침을 따릅니다.

샘플 복사본 가져오기

이 샘플의 복사본과 Windows Installer 데이터베이스 테이블 편집기(Orca.exe)는 Windows 설치 관리자 개발자를 위한 Windows SDK 구성 요소에 있습니다. 샘플 및 테이블 편집기는 Windows Server 2008 R2용 Windows 소프트웨어 개발 키트와 Windows 7을 Windows 설치 관리자 설치 파일 PUASample1.msi 및 Orca.msi 제공합니다.

시스템 요구 사항

Orca.exe데이터베이스 편집기에서는 Windows Server 2008 R2 이전 및 Windows 7 이하가 필요합니다. 이중 용도 패키지인 PUASample1.msi Windows Server 2008 R2 및 Windows 7의 컴퓨터별 또는 사용자별 설치 컨텍스트에 설치할 수 있습니다. PUASample1.msi Windows Server 2008 이전 및 Windows Vista 이전 버전의 컴퓨터별 컨텍스트에만 설치할 수 있습니다. 샘플을 설치하지 않고 데이터베이스 편집기를 설치하여 PUASample1.msi 내용을 검사할 수 있습니다. 샘플 또는 편집기 패키지를 설치하려면 DisableMSI 정책이 애플리케이션 설치를 차단하는 값으로 설정되지 않았는지 확인합니다.

Dual-Purpose 패키지 식별

이중 용도 패키지는 MSIINSTALLPERUSER 속성 값을 1로 초기화해야 합니다. 그러면 Windows Server 2008 R2 및 Windows 7의 컴퓨터별 또는 사용자별 컨텍스트에 패키지를 설치할 수 있는 것으로 식별됩니다. 단일 패키지 작성에 설명된 개발 지침에 따라 작성된 경우에만 패키지에서 MSIINSTALLPERUSER 속성을 설정하고 사용자별 또는 컴퓨터별 컨텍스트에서 패키지를 설치하는 옵션을 사용자에게 제공하려는 경우에만 설정합니다. 이중 용도 패키지는 ALLUSERS 속성 값을 2로 초기화해야 합니다. 이는 사용자 단위를 애플리케이션의 기본 설치 컨텍스트로 지정합니다. ALLUSERS 속성 값이 2 이외의 값이면 Windows Installer는 MSIINSTALLPERUSER 속성을 무시합니다.

Orca.exe같은 Windows Installer 데이터베이스 편집기를 사용하여 PUASample1.msi 내용을 검사합니다. 샘플 패키지의 속성 테이블에는 다음 두 항목이 포함됩니다.

속성 테이블(부분)

속성
ALLUSERS 2
MSIINSTALLPERUSER 1

 

설치 컨텍스트에 대한 사용자 지정 대화 상자

샘플 패키지의 사용자 인터페이스 에는 설치 시 사용자별 또는 컴퓨터별 설치 컨텍스트를 선택할 수 있는 사용자 지정 대화 상자 VerifyReadyDialog의 예가 포함되어 있습니다. 대화 상자에는 VerifyReadyDialog 대화 상자를 설명하는 레코드가 포함되어 있습니다. 특성 필드에 입력된 값은 39입니다. 이 대화 상자는 msidbDialogAttributesVisible(1), msidbDialogAttributesModal(2), msidbDialogAttributesMinimize(4) 및 msidbDialogAttributesTrackDiskSpace(32) 대화 스타일 비트를 사용하기 때문입니다. 대화 상자의 제목 표시줄에는 ProductName 속성 값으로 지정된 제목이 표시됩니다.

대화 테이블(부분)

대화 상자 HCentering VCentering 너비 높이 특성 제목 Control_First Control_Default Control_Cancel
VerifyReadyDialog 50 50 480 280 39 [ProductName] InstallPerUser 다음 취소

 

컨트롤 테이블에는 VerifyReadyDialog 대화 상자에 표시되는 컨트롤에 대한 항목이 포함되어 있습니다. 대화 상자에 PushButton 컨트롤 및 텍스트 컨트롤이 표시됩니다. 모든 컨트롤은 msidbControlAttributesEnabled(2) 및 msidbControlAttributesVisible(1) 컨트롤 특성을 사용합니다. 또한 InstallPerMachine 컨트롤은 ElevationShield 컨트롤 특성인 msidbControlAttributesElevationShield(8388608.)를 사용합니다. 이 컨트롤 특성은 InstallPerMachine 컨트롤에 UAC( 사용자 계정 컨트롤 ) 권한 상승 아이콘(방패 아이콘)을 추가하고 머신별 컨텍스트에서 애플리케이션을 설치하는 데 UAC 자격 증명이 필요하다는 것을 사용자에게 알릴 수 있습니다. 컨트롤 테이블의 텍스트 필드에 있는 값은 컨트롤에 표시되는 텍스트 스타일과 텍스트입니다. 미리 정의된 스타일을 사용하여 컨트롤에 텍스트를 추가하는 방법에 대한 자세한 내용은 컨트롤 테이블 항목의 텍스트 필드에 대한 설명을 참조하세요.

컨트롤 테이블(부분)

Dialog_ 제어 형식 attribute 텍스트 Control_Next
VerifyReadyDialog 취소 푸시버튼 3 {\Tahoma10}& 취소 다음
VerifyReadyDialog Previous 푸시버튼 3 {\Tahoma10}<<& 이전 취소
VerifyReadyDialog 다음 푸시버튼 3 {\Tahoma10}& 다음 >> InstallPerUser
VerifyReadyDialog Text2 텍스트 3 일시 중단된 설치를 완료할 준비가 되셨나요?
VerifyReadyDialog InstallPerUser 푸시버튼 3 {\Tahoma10} 나를 위해 &만 설치 InstallPerMachine
VerifyReadyDialog InstallPerMachine 푸시버튼 8388611 {\Tahoma10} 모든 사용자용 &설치 Previous
VerifyReadyDialog 취소 푸시버튼 3 {\Tahoma10}& 취소 다음

 

ControlEvent 테이블은 사용자가 컨트롤과 상호 작용할 때 설치 관리자가 수행하는 ControlEvents 또는 작업을 지정합니다. 사용자가 InstallPerUser 푸시버튼을 활성화하면 OutOfDiskSpace 속성이 1이면 사용자 인터페이스에 OutOfDisk 대화 상자가 표시되고, MSIINSTALLPERUSER 속성 값이 1로 설정되고, ALLUSERS 속성 값이 2로 설정되고, MSIFASTINSTALL 속성이 1로 설정되고, 반환됩니다. MSIFASTINSTALL 속성이 설정되었으므로 설치를 위해 시스템 복원 지점이 생성되지 않습니다. 사용자가 InstallPerMachine pushbutton을 활성화하면 OutOfDiskSpace 속성이 1이면 사용자 인터페이스에 OutOfDisk 대화 상자가 표시되고 ALLUSERS 속성의 값이 1로 설정되고 반환됩니다.

ControlEvent 테이블(부분)

Dialog_ Control_ 이벤트 인수 조건 주문
VerifyReadyDialog InstallPerUser SpawnDialog OutOfDisk OutOfDiskSpace = 1 1
VerifyReadyDialog InstallPerUser EndDialog 반환 값 OutOfDiskSpace <> 1 5
VerifyReadyDialog InstallPerUser [MSIINSTALLPERUSER] 1 1 2
VerifyReadyDialog InstallPerUser [ALLUSERS] 2 1 3
VerifyReadyDialog InstallPerMachine SpawnDialog OutOfDisk OutOfDiskSpace = 1 1
VerifyReadyDialog InstallPerMachine EndDialog 반환 값 OutOfDiskSpace <> 1 3
VerifyReadyDialog InstallPerMachine [ALLUSERS] 1 1 2
VerifyReadyDialog InstallPerUser [MSIFASTINSTALL] 1 1 4

 

InstallPerUser 컨트롤은 Windows Installer Windows Installer 5.0 이전 버전의 Windows 설치 관리자를 사용하여 설치의 사용자 인터페이스에서 제거되어야 합니다. 샘플 패키지의 ControlCondition 테이블에는 현재 버전이 Windows Installer 5.0보다 작은 경우 InstallPerUser 컨트롤을 사용하지 않도록 설정하고 숨기는 네 가지 항목이 포함되어 있습니다. 테이블은 VersionMsi 속성 값과 조건문 구문을 사용하여 이 조건을 정의합니다. 작업 필드에 지정된 작업은 조건 필드의 문이 true인 경우에만 수행됩니다.

ControlCondition 테이블(부분)

Dialog_ Control_ 작업 조건
VerifyReadyDialog InstallPerUser 사용 VersionMsi >= "5.00"
VerifyReadyDialog InstallPerUser 사용 중지 VersionMsi < "5.00"
VerifyReadyDialog InstallPerUser 표시 VersionMsi >= "5.00"
VerifyReadyDialog InstallPerUser 숨기기 VersionMsi < "5.00"

 

디렉터리 구조 지정

데이터베이스 편집기를 사용하여 PUASample1.msi 디렉터리 테이블을 검사합니다. Directory_Parent 필드에 빈 문자열이 있는 디렉터리 테이블의 레코드는 원본 및 대상 디렉터리 트리의 루트 디렉터리를 나타냅니다. TARGETDIR 속성이 정의되지 않은 경우 설치 관리자는 설치 시 해당 값을 ROOTDRIVE 속성 값으로 설정합니다. SourceDir 속성이 정의되지 않은 경우 설치 관리자는 해당 값을 Windows Installer 패키지(.msi 파일이 포함된 디렉터리의 위치로 설정합니다. 디렉터리 이름은 짧은 | 형식으로 지정됩니다.

디렉터리 테이블(부분)

디렉터리 Directory_Parent DefaultDir
TARGETDIR SourceDir
ProgramFilesFolder TARGETDIR .
ProgramMenuFolder TARGETDIR .
INSTALLLOCATION MyVendor Sample1| MSDN-PUASample1
MyVendor ProgramFilesFolder Msft| Microsoft

 

원본에서 이 디렉터리 테이블은 다음 디렉터리 경로로 확인됩니다.

\[SourceDir\]\\Msft\\Sample1 \[SourceDir\]

대상에서 디렉터리 테이블은 다음 표의 경로로 확인됩니다. 설치 관리자는 ProgramFilesFolderProgramMenuFolder 속성의 값을 설치 컨텍스트에 따라 달라지는 위치로 설정하고 시스템이 Windows Server 2008 R2 및 Windows 7의 32비트 또는 64비트 버전인지 여부를 설정합니다. 대상 폴더에 대한 경로는 사용자가 사용자별 설치 또는 컴퓨터별 설치를 선택하는지 여부에 따라 달라집니다.

설치 컨텍스트 시스템 예제 경로
Per-Machine Windows Server 2008 R2 및 Windows 7
32비트 버전
%ProgramFiles%\Msft\Sample1
%ALLUSERSPROFILE%\Microsoft\Windows\Start Menu\Programs
Per-Machine Windows Server 2008 R2 및 Windows 7
64비트 버전
%ProgramFiles(x86)%\Msft\Sample1
%ALLUSERSPROFILE%\Microsoft\Windows\Start Menu\Programs
Per-User Windows Server 2008 R2 및 Windows 7
32비트 또는 64비트 버전
%USERPROFILE%\AppData\Local\Programs\Msft\Sample1
%APPDATA%\Microsoft\Windows\Start Menu\Programs

 

사용자별 애플리케이션은 ProgramFilesFolder 속성 값으로 지정된 Programs 폴더 아래의 하위 폴더에 저장되어야 합니다. 일반적으로 애플리케이션에 대한 경로는 다음과 같은 형식을 사용합니다.

%LOCALAPPDATA%\Programs\ISVnameAppName\.

사용자별 구성 데이터는 ProgramMenuFolder 속성 값으로 지정된 Programs 폴더에 저장되어야 합니다. 일반적으로 이 폴더는 다음 경로에 있습니다.

%APPDATA%\Microsoft\Windows\Start Menu\Programs

32비트 Windows 설치 관리자 패키지 구성 요소를 설치하는 경우 Directory 테이블에서 ProgramFilesFolderCommonFilesFolder 속성을 사용합니다. 64비트 Windows 설치 관리자 패키지 구성 요소를 설치하는 경우 ProgramFiles64FolderCommonFiles64Folder 속성을 사용합니다. 애플리케이션에 동일한 구성 요소의 32비트 및 64비트 버전이 동일한 이름을 포함하는 경우 이러한 버전이 다른 디렉터리에 저장되었는지 확인하거나 다른 이름을 지정합니다.

다음 디렉터리 표에서는 32비트 및 64비트 구성 요소를 포함하고 애플리케이션 간에 공유되는 일부 구성 요소를 포함하는 패키지와 호환되는 디렉터리 레이아웃의 예를 제공합니다.

디렉터리 Directory_Parent DefaultDir
TARGETDIR SourceDir
ProgramFilesFolder TARGETDIR .:P rog32
ProgramFiles64Folder TARGETDIR .:P rog64
CommonFilesFolder TARGETDIR .:Share32
CommonFiles64Folder TARGETDIR .:Share64
ProgramMenuFolder TARGETDIR .:Sample1| MSDN-PUASample1
INSTALLLOCATION MyVendor Sample1| MSDN-PUASample1
INSTALLLOCATIONX64 Vendorx64 Sample1| MSDN-PUASample1
SHAREDLOCATION ShVendor Sample1| MSDN-PUASample1
SHAREDLOCATIONX64 ShVendorx64 Sample1| MSDN-PUASample1
MyVendor ProgramFilesFolder Msft| Microsoft
Vendorx64 ProgramFiles64Folder Msft| Microsoft
ShVendor CommonFilesFolder Msft| Microsoft
ShVendorx64 CommonFiles64Folder Msft| Microsoft
Shrx86 SHAREDLOCATION x32|32비트 구성 요소
Shrx64 SHAREDLOCATIONX64 x64|64비트 구성 요소
Binx86 INSTALLLOCATION x32|32비트 구성 요소
Binx64 INSTALLLOCATIONX64 x64|64비트 구성 요소
App32 Binx86 myapp|공유 32비트 구성 요소
App64 Binx64 myapp|공유 64비트 구성 요소
Share32 Shrx86 공유|공유 32비트 구성 요소
Share64 Shrx64 공유|공유 64비트 구성 요소

 

원본에서 이 디렉터리 테이블은 다음 디렉터리 경로로 확인됩니다.

\[SourceDir\]Prog32\\Msft\\Sample1\\x32\\myapp \[SourceDir\]Share32\\Common Files\\Msft\\Sample1\\x32\\shared \[SourceDir \]Prog64\\Msft\\Sample1\\x64\\myapp \[SourceDir\]Share64\\Common Files\\Msft\\Sample1\\x64\\shared \[SourceDir\]Sample1

대상에서 이 디렉터리 테이블은 다음 디렉터리 경로로 확인됩니다. 대상 경로는 설치 컨텍스트 및 시스템에 따라 달라집니다.

설치 컨텍스트 시스템 예제 경로
Per-Machine Windows Server 2008 R2 및 Windows 7
32비트 버전
%ProgramFiles%\Msft\Sample1\x32\myapp
%ProgramFiles%\Common Files\Msft\Sample1\x32\shared
%ProgramFiles(x86)%\Msft\Sample1\x64\myapp
%ProgramFiles(x86)%\Common Files\Msft\Sample1\x64\shared
%ProgramData%\Microsoft\Windows\Start Menu\Programs\Sample1
Per-Machine Windows Server 2008 R2 및 Windows 7
64비트 버전
%ProgramFiles(x86)%\Msft\Sample1\x32\myapp
%ProgramFiles(x86)%\Common Files\Msft\Sample1\x32\shared
%ProgramFiles%\Msft\Sample1\x64\myapp
%ProgramFiles%\Common Files\Msft\Sample1\x64\shared
%ProgramData%\Microsoft\Windows\Start Menu\Programs\Sample1
Per-User Windows Server 2008 R2 및 Windows 7
32비트 또는 64비트 버전
%LOCALAPPDATA%\Programs\Msft\Sample1\x32\myapp
%LOCALAPPDATA%\Programs\Common\Msft\Sample1\x32\shared
%LOCALAPPDATA%\Programs\Msft\Sample1\x64\myapp
%LOCALAPPDATA%\Programs\Common\Msft\Sample1\x64\shared
%APPDATA%\Microsoft\Windows\Start Menu\Programs\Sample1

 

애플리케이션 등록

PUASample.msi 애플리케이션의 앱 경로 레지스트리 키에 하위 키를 추가하고 이 키 아래 레지스트리에 애플리케이션 정보를 저장할 수 있도록 하는 등록을 수행합니다. 앱 경로 및 애플리케이션 등록에 대한 자세한 내용은 셸 개발자 가이드셸 확장성 섹션에서 PerceivedTypes, SystemFileAssociations 및 애플리케이션 등록을 참조하세요. 설치 시 사용자는 사용자별 또는 컴퓨터별 설치 컨텍스트에서 애플리케이션을 설치하기로 결정합니다. 이중 용도 패키지를 작성할 때 패키지 개발자는 HKEY_LOCAL_MACHINE 또는 HKEY_CURRENT_USER 키로 등록을 수행해야 하는지 알 수 없습니다.

패키지 개발자는 파일 테이블의 파일 필드에서 애플리케이션의 실행 파일에 대한 파일 식별자를 정의합니다.

파일 테이블(부분)

파일 Component_ FileName FileSize 버전 언어 특성 순서
MyAppFile ProductComponent PUASAMP1.EXE|PUASample1.exe 81920 0 1

 

레지스트리에 저장할 값은 레지스트리 테이블의 값 필드에 서식 있는 문자열로 지정할 수 있습니다. 파일 테이블의 파일 필드에 정의된 파일 식별자와 서식이 지정된 형식의 [#filekey] 규칙을 사용하여 앱 경로 레지스트리 키의 기본값을 지정합니다. 최상위 INSTALL 작업은 InstallExecuteSequence 테이블에서 작업을 수행합니다. 이 테이블의 CostInitialize, FileCostInstallFinalize 작업이 완료되면 Windows Installer는 레지스트리 테이블의 서식이 지정된 부분 문자열 [#MyAppFile]을 애플리케이션 파일의 전체 경로로 바꿉니다.

이 샘플은 루트 키의 위치를 포함하도록 사용자 지정 속성 RegRoot를 정의하고 사용자 지정 작업을 사용하여 사용자가 컴퓨터별 설치를 선택하는 경우 속성 값을 다시 설정합니다. 루트 위치를 참조하는 형식이 지정된 문자열 값에서 사용자 지정 속성 RegRoot를 사용합니다. 속성 테이블에서 PUASample.msi 패키지는 사용자 지정 속성을 정의하고 RegRoot 값을 HKCU로 설정합니다. 이렇게 하면 이중 용도 패키지에 권장되는 기본 컨텍스트인 사용자별 설치 컨텍스트에 대한 속성 값이 초기화됩니다.

속성 테이블(부분)

속성
RegRoot HKCU

 

CustomAction 테이블에서 패키지는 Set_RegRoot_HKLM 사용자 지정 작업을 정의합니다. 형식 필드의 값은 이를 사용자 지정 작업 유형 51 표준 사용자 지정 작업으로 식별합니다. CustomAction 테이블에서 원본 및 대상 필드의 의미는 사용자 지정 작업 유형에 따라 달라집니다. 표준 유형의 사용자 지정 작업에 대한 자세한 내용은 사용자 지정 작업 유형을 참조하세요. Set_RegRoot_HKLM 사용자 지정 작업의 원본 필드는 RegRoot 속성의 값을 지정합니다. 설치 관리자가 Set_RegRoot_HKLM 사용자 지정 작업을 수행하는 경우 RegRoot 속성 값을 HKLM로 다시 설정합니다.

CustomAction 테이블(부분)

작업 형식 원본 대상
Set_RegRoot_HKLM 51 [RegRoot] HKLM

 

최상위 INSTALL 작업은 해당 테이블의 시퀀스 필드에 지정된 시퀀스의 InstallExecuteSequence 테이블에서 작업을 수행합니다. Set_RegRoot_HKLM 사용자 지정 작업(1501)에 대한 시퀀스 필드에 작성된 값은 InstallInitialize 작업(1500) 이후 및 ProcessComponents 작업(1600) 이전에 이 사용자 지정 작업을 수행하도록 지정합니다. 이 시퀀스를 사용하면 Set_RegRoot_HKLM 사용자 지정 작업에 대한 레코드가 설치 시 평가됩니다. InstallExecuteSequence 테이블에서 권장되는 작업 시퀀스에 대한 자세한 내용은 제안된 InstallExecuteSequence 항목을 참조하세요. 조건 필드에 작성된 조건문 구문 은 설치 시 ALLUSERS 속성 값이 1로 평가되는 경우에만 Set_RegRoot_HKLM 작업을 수행하도록 지정합니다. ALLUSERS 속성 값 1은 컴퓨터별 설치를 지정합니다.

InstallExecuteSequence 테이블(부분)

작업 조건 순서
Set_RegRoot_HKLM ALLUSERS=1 1501

 

ProductComponent 구성 요소가 설치된 경우 레지스트리 테이블의 다음 레코드는 등록을 수행합니다. 루트 필드의 값 -1은 사용자별 설치에 대한 HKEY_LOCAL_MACHINE 및 사용자별 설치에 대한 HKEY_CURRENT_USER 아래에서 등록을 수행하는 데 필요합니다. 레지스트리 필드에 빈 문자열이 있는 레코드는 AppPaths 레지스트리 키 아래에 애플리케이션에 대한 하위 키를 추가하고 "(기본값)" 값을 애플리케이션 실행 파일의 전체 경로로 설정합니다. MyAppPathAlias 등록은 실행 파일을 애플리케이션 별칭에 매핑하고 사용자가 명령줄 프롬프트에서 별칭 "puapct"를 입력하는 경우 애플리케이션을 시작할 수 있도록 합니다. MyAppPathRegistration 등록은 실행 파일의 이름을 파일의 전체 경로에 매핑합니다.

레지스트리 Root 이름 구성 요소
-1 Software\Microsoft\MyAppPathRegistrationLocation [RegRoot]\Software\Microsoft\Windows\CurrentVersion\App Paths\PUAPCT.exe ProductComponent
MyAppPathAlias -1 Software\Microsoft\Windows\CurrentVersion\App Paths\PUAPCT.exe [#MyAppFile] ProductComponent
MyAppPathRegistration -1 Software\Microsoft\Windows\CurrentVersion\App Paths\PUASample1.exe [#MyAppFile] ProductComponent

 

자동 실행 등록 취소

PUASample.msi 애플리케이션 사용자가 선택한 디바이스에 대해 하드웨어 자동 실행 이 시작되지 않도록 하는 등록을 수행합니다. 이벤트에 대한 응답으로 자동 실행을 취소하는 처리기를 등록하는 방법에 대한 자세한 내용은 셸 개발자 가이드의셸 확장성 섹션에서 자동 실행과 함께 사용할 하드웨어 및 소프트웨어 준비 항목을 참조하세요. 다음 레코드는 ProductComponent 구성 요소가 설치될 때 이름 필드에 지정된 처리기를 등록합니다. 루트 필드의 값 -1은 Windows 설치 관리자에 등록을 설치 컨텍스트에 따라 달라지는 위치로 리디렉션하도록 지정하는 데 필요합니다.

레지스트리 테이블

레지스트리 Root 이름 구성 요소
MyAutoplayCancelRegistration -1 SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\CancelAutoplay\CLSID 66A32FE6-229D-427b-A608-D273F40C034C ProductComponent

 

미리 보기 처리기 등록

PUASample.msi 애플리케이션을 시작하지 않고 .pua 파일의 읽기 전용 미리 보기를 사용하도록 설정하는 미리 보기 처리기를 설치하는 데 필요한 등록을 수행합니다. 미리 보기 처리기를 등록하는 방법에 대한 자세한 내용은 셸 개발자 가이드셸 확장성 섹션에서 미리 보기 처리기 등록 항목을 참조하세요. Registry 테이블의 다음 레코드는 ProductComponent 구성 요소가 설치될 때 처리기를 등록합니다. 루트 필드의 값 -1은 Windows 설치 관리자에 등록을 설치 컨텍스트에 따라 달라지는 위치로 리디렉션하도록 지정하는 데 필요합니다.

레지스트리 테이블

레지스트리 Root 이름 구성 요소
MyPreviewHandlerRegistration1 -1 Software\Classes\.pua puafile ProductComponent
MyPreviewHandlerRegistration2 -1 Software\Microsoft\Windows\CurrentVersion\PreviewHandlers {1531d583-8375-4d3f-b5fb-d23bbd169f22} Microsoft Windows PUA TEST Preview 처리기 ProductComponent
MyPreviewHandlerRegistration3 -1 Software\Classes\puafile\ShellEx\{8895b1c6-b41f-4c1c-a562-0d564250836f} {1531d583-8375-4d3f-b5fb-d23bbd169f22} ProductComponent
MyPreviewHandlerRegistration4 -1 Software\Classes\CLSID\{1531d583-8375-4d3f-b5fb-d23bbd169f22} Per-User Applicaton 샘플 1 미리 보기 처리기 ProductComponent
MyPreviewHandlerRegistration5 -1 Software\Classes\CLSID\{1531d583-8375-4d3f-b5fb-d23bbd169f22} AppID {6d2b5079-2f0b-48dd-ab7f-97cec514d30b} ProductComponent
MyPreviewHandlerRegistration6 -1 Software\Classes\CLSID\{1531d583-8375-4d3f-b5fb-d23bbd169f22} DisplayName @shell32,-38242 ProductComponent
MyPreviewHandlerRegistration7 -1 Software\Classes\CLSID\{1531d583-8375-4d3f-b5fb-d23bbd169f22} 아이콘 notepad.exe,2 ProductComponent
MyPreviewHandlerRegistration8 -1 Software\Classes\CLSID\{1531d583-8375-4d3f-b5fb-d23bbd169f22}\InProcServer32 ThreadingModel 아파트 ProductComponent
MyPreviewHandlerRegistration9 -1 Software\Classes\CLSID\{1531d583-8375-4d3f-b5fb-d23bbd169f22}\InProcServer32 #%%SystemRoot%\system32\shell32.dll ProductComponent
MyPreviewHandlerRegistration10 -1 Software\Classes\CLSID\{1531d583-8375-4d3f-b5fb-d23bbd169f22}\InProcServer32 ProgID puafile ProductComponent