다음을 통해 공유


단일 패키지 작성 예제

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

샘플의 복사본 가져오기

이 샘플의 복사본과 Windows Installer 데이터베이스 테이블 편집기 Orca.exe는 Windows Installer 개발자용 Windows SDK 구성 요소 에 있습니다. Windows Server 2008 R2 및 Windows 7용 Windows 소프트웨어 개발 키트에는 샘플 및 테이블 편집기가 Windows Installer 설치 파일 PUASample1.msi 및 Orca.msi과 함께 제공됩니다.

시스템 요구 사항

데이터베이스 편집기 Orca.exeWindows 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) 대화 스타일 비트사용하므로 39입니다. 대화 상자의 제목 표시줄에는 ProductName 속성 값으로 지정된 제목이 표시됩니다.

대화 테이블(부분)

대화 HCentering 브이센터링 너비 높이 특성 타이틀 제어_첫 번째 제어_기본값 컨트롤_취소
VerifyReadyDialog 50 50 480 280 39 [ProductName] InstallPerUser 다음 취소

 

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

컨트롤 테이블(부분)

대화_ 제어 유형 속성 문자 메시지 제어_다음
준비 확인 대화창 취소 푸시버튼 3 {\Tahoma10}&취소 다음
VerifyReadyDialog 이전 푸시버튼 3 {\Tahoma10}<<&이전 취소
VerifyReadyDialog 다음 푸시버튼 3 {\Tahoma10}&다음 >> InstallPerUser
VerifyReadyDialog 텍스트2 문자 메시지 3 일시 중단된 설치를 완료할 준비가 되셨나요?
VerifyReadyDialog InstallPerUser 푸시버튼 3 {\Tahoma10}&나만을 위한 설치 InstallPerMachine
준비 확인 대화창 InstallPerMachine 푸시버튼 8388611 {\Tahoma10}&모두용 설치 이전
VerifyReadyDialog 취소 푸시버튼 3 {\Tahoma10}&취소 다음

 

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

ControlEvent 테이블(부분)

대화_ 제어_ 이벤트 논쟁 조건 주문
VerifyReadyDialog InstallPerUser SpawnDialog OutOfDisk OutOfDiskSpace = 1 1
VerifyReadyDialog InstallPerUser 대화 종료 돌아오다 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

 

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

ControlCondition 테이블(부분)

대화_ 제어_ 행동 조건
VerifyReadyDialog InstallPerUser 활성화 VersionMsi >= "5.00"
VerifyReadyDialog InstallPerUser 비활성화 VersionMsi < "5.00"
VerifyReadyDialog InstallPerUser 보이다 VersionMsi >= "5.00"
VerifyReadyDialog InstallPerUser 숨기기 VersionMsi < "5.00"

 

디렉터리 구조 지정

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

디렉터리 테이블(부분)

디렉토리 디렉토리_부모 기본 디렉토리
TARGETDIR SourceDir
프로그램 파일 폴더 TARGETDIR .
프로그램 메뉴 폴더 TARGETDIR .
설치 위치 MyVendor Sample1|MSDN-PUASample1
마이벤더 프로그램 파일 폴더 Msft|Microsoft

 

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

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

대상에서 Directory 테이블은 다음 표에 있는 경로로 변환됩니다. 설치 관리자는 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\ISV 이름\앱이름.

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

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

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

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

디렉토리 디렉토리_상위 기본 디렉터리 (DefaultDir)
TARGETDIR SourceDir
프로그램파일폴더 TARGETDIR .:Prog32
프로그램 파일 64 폴더 TARGETDIR .:Prog64
공용 파일 폴더 TARGETDIR .:Share32
공용파일64폴더 TARGETDIR .:Share64
프로그램 메뉴 폴더 TARGETDIR .:Sample1|MSDN-PUASample1
설치 위치 MyVendor Sample1|MSDN-PUASample1
INSTALLLOCATIONX64 Vendorx64 Sample1|MSDN-PUASample1
공유된 위치 ShVendor Sample1|MSDN-PUASample1
SHAREDLOCATIONX64 ShVendorx64 Sample1|MSDN-PUASample1
MyVendor 프로그램 파일 폴더 Msft|Microsoft
Vendorx64 프로그램파일64폴더 Msft|마이크로소프트
ShVendor 공용 파일 폴더 Msft|마이크로소프트
ShVendorx64 공용파일64폴더 Msft|Microsoft(마이크로소프트)
Shrx86 공유 위치 x32|32비트 구성 요소
Shrx64 SHAREDLOCATIONX64 x64|64비트 구성 요소
Binx86 설치 위치 x32|32비트 구성 요소
Binx64 INSTALLLOCATIONX64 x64|64비트 구성 요소
App32 Binx86 myapp|공유되지 않은 32비트 구성 요소
App64 Binx64 myapp|공유되지 않은 64비트 구성 요소
Share32 Shrx86 shared|shared 32비트 구성 요소
Share64 Shrx64 shared|shared 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 애플리케이션의 App Paths 레지스트리 키에 하위 키를 추가하고 이 키 아래의 레지스트리에 애플리케이션 정보를 저장할 수 있도록 등록을 수행합니다. 앱 경로 및 애플리케이션 등록에 대한 자세한 내용은 Shell 개발자 가이드셸 확장성 섹션의 PerceivedTypes, SystemFileAssociations 및 애플리케이션 등록 참조하세요. 설치 시 사용자는 사용자별 또는 컴퓨터별 설치 컨텍스트에서 애플리케이션을 설치하기로 결정합니다. 이중 용도 패키지를 작성할 때 패키지 개발자는 HKEY_LOCAL_MACHINE 또는 HKEY_CURRENT_USER 키에서 등록을 수행해야 하는지 알 수 없습니다.

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

파일 테이블(부분)

파일 구성 요소_ 파일 이름 파일 크기 버전 언어 특성 순서
MyAppFile 제품 구성 요소 PUASAMP1.EXE|PUASample1.exe 81920 0 1

 

레지스트리에 저장할 값은 Registry 테이블의 값 필드에 형식이 지정된 문자열로 지정할 수 있습니다. 파일 테이블의 파일 필드에 정의된 파일 식별자와 서식이 지정된 형식의 [#파일 키] 규칙을 사용하여 App Paths 레지스트리 키의 기본값을 지정합니다. 최상위 INSTALL 작업은 InstallExecuteSequence 테이블에서 작업을 수행합니다. CostInitialize, FileCost및 이 테이블의 installFinalize 작업이 완료된 후 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 (레지스트리 루트 설정 - HKLM) ALLUSERS=1 1501

 

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

레지스트리 뿌리 열쇠 이름 구성 요소
-1 Software\Microsoft\MyAppPathRegistrationLocation [RegRoot]\Software\Microsoft\Windows\CurrentVersion\App Paths\PUAPCT.exe 제품 구성 요소
MyAppPathAlias -1 소프트웨어\Microsoft\Windows\CurrentVersion\App Paths\PUAPCT.exe [#MyAppFile] 제품 구성 요소
MyAppPathRegistration -1 소프트웨어\Microsoft\Windows\CurrentVersion\App Paths\PUASample1.exe [#MyAppFile] 제품 구성 요소

 

자동 재생 등록 취소

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

레지스트리 테이블

레지스트리 뿌리 열쇠 이름 구성 요소
자동재생취소등록 -1 SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\CancelAutoplay\CLSID 66A32FE6-229D-427b-A608-D273F40C034C 제품구성요소

 

미리 보기 처리기 등록

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

레지스트리 테이블

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