Bagikan melalui


Contoh Penulisan Paket Tunggal

Contoh PUASample.msi adalah contoh paket Windows Installer 5.0 tujuan ganda yang mampu diinstal baik dalam konteks penginstalan per pengguna atau per mesin pada Windows Server 2008 R2 dan Windows 7. Paket sampel ini mengikuti panduan pengembangan yang dijelaskan dalam Penulisan Paket Tunggal.

Mendapatkan salinan sampel

Salinan sampel ini dan editor tabel database Windows Installer, Orca.exe, ada di Komponen Windows SDK untuk Pengembang Windows Installer. Editor sampel dan tabel disediakan dengan Windows Software Development Kit untuk Windows Server 2008 R2 dan Windows 7 sebagai file penginstalan Windows Installer PUASample1.msi dan Orca.msi.

Persyaratan Sistem

Editor database, Orca.exe, memerlukan Windows Server 2008 R2 atau yang lebih lama dan Windows 7 atau versi sebelumnya. Paket tujuan ganda, PUASample1.msi, dapat diinstal dalam konteks penginstalan per mesin atau per pengguna pada Windows Server 2008 R2 dan Windows 7. PUASample1.msi hanya dapat diinstal dalam konteks per komputer pada Windows Server 2008 dan yang lebih lama dan Windows Vista dan yang lebih lama. Anda dapat menginstal editor database untuk memeriksa konten PUASample1.msi tanpa menginstal sampel. Untuk menginstal paket sampel atau editor, pastikan bahwa kebijakan DisableMSI tidak diatur ke nilai yang memblokir penginstalan aplikasi.

Mengidentifikasi Paket Dual-Purpose

Paket tujuan ganda harus menginisialisasi nilai properti MSIINSTALLPERUSER ke 1. Ini mengidentifikasi paket sebagai mampu diinstal dalam konteks per mesin atau per pengguna pada Windows Server 2008 R2 dan Windows 7. Atur properti MSIINSTALLPERUSER dalam paket hanya jika telah ditulis mengikuti panduan pengembangan yang dijelaskan dalam Penulisan Paket Tunggal dan jika Anda bermaksud memberi pengguna opsi untuk menginstal paket dalam konteks per pengguna atau per mesin. Paket tujuan ganda juga harus menginisialisasi nilai dari properti ALLUSERS menjadi 2. Ini menentukan untuk setiap pengguna sebagai konteks penginstalan default untuk aplikasi. Jika nilai properti ALLUSERS adalah nilai selain 2, Penginstal Windows mengabaikan properti MSIINSTALLPERUSER.

Gunakan editor database Penginstal Windows, seperti Orca.exe, untuk memeriksa konten PUASample1.msi. Tabel Properti dalam paket sampel berisi dua entri berikut.

Tabel Properti (parsial)

Harta benda Nilai
SEMUA PENGGUNA 2
MSIINSTALLPERUSER 1

 

Kotak Dialog Kustom untuk Konteks Penginstalan

Antarmuka pengguna paket sampel menyertakan contoh kotak dialog kustom, VerifyReadyDialog, yang memungkinkan pengguna untuk memilih konteks penginstalan per pengguna atau per mesin pada waktu penginstalan. Tabel Dialog berisi rekaman yang menjelaskan kotak dialog VerifyReadyDialog. Nilai yang dimasukkan di bidang Atribut adalah 39 karena kotak dialog ini menggunakan msidbDialogAttributesVisible (1), msidbDialogAttributesModal (2), msidbDialogAttributesMinimize (4), dan msidbDialogAttributesTrackDiskSpace (32) bit gaya dialog. Bilah judul kotak dialog menampilkan judul yang diberikan oleh nilai properti ProductName.

Dialog Tabel (parsial)

Dialog HCentering VCentering Lebar Tinggi Atribut Titel Control_First Kontrol_Bawaan Control_Cancel
VerifyReadyDialog 50 50 480 280 39 [ProductName] InstallPerUser Berikutnya Batalkan

 

Tabel Kontrol berisi entri untuk kontrol ditampilkan oleh kotak dialog VerifyReadyDialog. Kotak dialog menampilkan kontrol PushButton dan kontrol Teks. Semua kontrol menggunakan atribut kontrol msidbControlAttributesEnabled (2) dan msidbControlAttributesVisible (1), serta atribut kontrol dan. Kontrol InstallPerMachine juga menggunakan atribut kontrol ElevationShield, msidbControlAttributesElevationShield (8388608.) Atribut kontrol ini menambahkan ikon elevasiKontrol Akun Pengguna (UAC)(ikon perisai) ke kontrol InstallPerMachine dan memberi tahu pengguna bahwa kredensial UAC diperlukan untuk menginstal aplikasi dalam konteks per mesin. Nilai di bidang Teks tabel Kontrol adalah gaya teks dan teks yang ditampilkan oleh kontrol. Lihat deskripsi bidang Teks dalam topik tabel Kontrol untuk informasi selengkapnya tentang menambahkan teks ke kontrol menggunakan gaya yang telah ditentukan sebelumnya.

Tabel Kontrol (parsial)

Dialog_ Kontrol Jenis Atribut Teks Kontrol_Berikut
VerifyReadyDialog Membatalkan Tombol Tekan 3 {\Tahoma10}&Batal Berikutnya
VerifyReadyDialog Sebelumnya Tombol Tekan 3 {\Tahoma10}<<&Sebelumnya Membatalkan
VerifyReadyDialog Berikutnya Tombol Tekan 3 {\Tahoma10}&>> Berikutnya InstallPerUser
VerifyReadyDialog Teks2 Teks 3 Apakah Anda siap untuk menyelesaikan penginstalan yang ditangguhkan?
VerifyReadyDialog InstallPerUser Tombol Tekan 3 {\Tahoma10}Instal Hanya untuk &Saya InstallPerMachine
VerifyReadyDialog InstallPerMachine Tombol Tekan 8388611 {\Tahoma10}Instal untuk &Semua Orang Sebelumnya
VerifyReadyDialog Membatalkan Tombol Dorong 3 {\Tahoma10}&Batal Berikutnya

 

Tabel ControlEvent menentukan ControlEvents, atau tindakan, yang dilakukan penginstal ketika pengguna berinteraksi dengan kontrol. Saat pengguna mengaktifkan tombol dorong InstallPerUser, antarmuka pengguna menampilkan kotak dialog OutOfDisk jika properti OutOfDiskSpace adalah 1, mengatur nilai properti MSIINSTALLPERUSER ke 1, mengatur nilai properti ALLUSERS ke 2, mengatur properti MSIFASTINSTALL ke 1, dan mengembalikan . Karena properti MSIFASTINSTALL dikonfigurasi, tidak ada titik Pemulihan Sistem yang dihasilkan untuk penginstalan. Saat pengguna mengaktifkan tombol push InstallPerMachine, antarmuka pengguna akan menampilkan kotak dialog OutOfDisk jika properti OutOfDiskSpace adalah 1, kemudian mengatur nilai properti ALLUSERS ke 1, dan mengembalikan.

AcaraKendali Tabel (parsial)

Dialog_ Kontrol_ Peristiwa Argumen Keadaan Pesanan
VerifyReadyDialog InstallPerUser SpawnDialog OutOfDisk OutOfDiskSpace = 1 1
VerifyReadyDialog InstallPerUser EndDialog Kembali 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 Kembali OutOfDiskSpace <> 1 3
VerifyReadyDialog InstallPerMachine [ALLUSERS] 1 1 2
VerifyReadyDialog InstallPerUser [MSIFASTINSTALL] 1 1 4

 

Kontrol InstallPerUser harus dihapus dari antarmuka pengguna untuk penginstalan apa pun yang menggunakan versi Windows Installer yang lebih lama dari Windows Installer 5.0. Tabel ControlCondition dalam paket sampel berisi empat entri yang menonaktifkan dan menyembunyikan kontrol InstallPerUser jika versi saat ini kurang dari Windows Installer 5.0. Tabel menggunakan nilai properti VersionMsi dan sintaks pernyataan kondisi untuk menentukan kondisi ini. Tindakan yang ditentukan di bidang Tindakan dilakukan hanya jika pernyataan di bidang Kondisi benar.

KondisiKontrol Tabel (sebagian)

Dialog_ Kontrol_ Perbuatan Keadaan
VerifyReadyDialog InstallPerUser Mengaktifkan VersionMsi >= "5.00"
VerifyReadyDialog InstallPerUser Menonaktifkan VersionMsi < "5.00"
VerifyReadyDialog InstallPerUser Tampilkan VersionMsi >= "5.00"
VerifyReadyDialog InstallPerUser Menyembunyikan VersionMsi < "5.00"

 

Menentukan Struktur Direktori

Gunakan editor database untuk memeriksa tabel Direktori dari PUASample1.msi. Rekaman Tabel Direktori yang memiliki string kosong di bidang Directory_Parent mewakili direktori akar dari pohon direktori sumber dan target. Jika propertiTARGETDIR tidak terdefinisi, alat penginstal menetapkan nilainya pada waktu penginstalan ke nilai propertiROOTDRIVE. Jika propertiSourceDir tidak terdefinisi, alat penginstal mengatur nilainya ke lokasi direktori yang berisi paket Penginstal Windows (file.msi.) Nama direktori ditentukan menggunakan format pendek|panjang.

Direktori Tabel (parsial)

Direktori Directory_Parent DefaultDir
TARGETDIR SourceDir
ProgramFilesFolder TARGETDIR .
ProgramMenuFolder TARGETDIR .
LOKASI INSTALASI MyVendor Sampel1|MSDN-PUASample1
MyVendor ProgramFilesFolder Msft|Microsoft

 

Pada sumbernya, tabel Direktori ini menghasilkan jalur direktori berikut.

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

Pada target, tabel Direktori menunjukkan jalur-jalur dalam tabel berikut. Alat penginstal mengatur nilai ProgramFilesFolder dan properti ProgramMenuFolder ke lokasi yang bergantung pada konteks pemasangan dan apakah sistem adalah versi 32-bit atau 64-bit dari Windows Server 2008 R2 dan Windows 7. Jalur ke folder target bergantung pada apakah pengguna memilih penginstalan per pengguna atau per komputer.

Konteks Penginstalan Sistem Contoh Jalur
Per-Machine Windows Server 2008 R2 dan Windows 7
Versi 32-bit
%ProgramFiles%\Msft\Sample1
%ALLUSERSPROFILE%\Microsoft\Windows\Start Menu\Programs
Per-Machine Windows Server 2008 R2 dan Windows 7
Versi 64-bit
%ProgramFiles(x86)%\Msft\Sample1
%ALLUSERSPROFILE%\Microsoft\Windows\Start Menu\Programs
Per-User Windows Server 2008 R2 dan Windows 7
Versi 32-bit atau 64-bit
%USERPROFILE%\AppData\Local\Programs\Msft\Sample1
%APPDATA%\Microsoft\Windows\Start Menu\Programs

 

Aplikasi per pengguna harus disimpan dalam subfolder di bawah folder Program yang ditentukan oleh nilai propertiProgramFilesFolder. Biasanya, jalur menuju aplikasi memiliki bentuk berikut.

%LOCALAPPDATA%\Programs\nama ISV\AppName.

Data konfigurasi per pengguna harus disimpan di folder Program yang ditentukan oleh nilai propertiProgramMenuFolder. Biasanya, folder ini terletak di jalur berikut.

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

Jika menginstal komponen Paket Penginstal Windows 32-bit, gunakan properti ProgramFilesFolder dan CommonFilesFolder di tabel Direktori. Jika menginstal komponen Paket Penginstal Windows 64-bit , gunakan properti ProgramFiles64Folder dan CommonFiles64Folder . Jika aplikasi Anda berisi versi 32-bit dan 64-bit dari komponen yang sama, dengan nama yang sama, pastikan bahwa versi ini disimpan di direktori yang berbeda atau beri nama yang berbeda.

Tabel Direktori berikut ini menyediakan contoh tata letak direktori yang kompatibel dengan paket yang mencakup komponen 32-bit dan 64-bit dan menyertakan beberapa komponen yang dibagikan di seluruh aplikasi.

Direktori Direktori_Induk DefaultDir
TARGETDIR SourceDir
ProgramFilesFolder TARGETDIR .:Prog32
ProgramFiles64Folder TARGETDIR .:Prog64
Folder File Umum TARGETDIR .:Share32
CommonFiles64Folder TARGETDIR .:Share64
ProgramMenuFolder TARGETDIR .:Sample1|MSDN-PUASample1
LOKASI INSTALASI MyVendor Sampel1|MSDN-PUASample1
INSTALLLOCATIONX64 Vendorx64 Sampel1|MSDN-PUASample1
LOKASI BERSAMA ShVendor Sampel1|MSDN-PUASample1
SHAREDLOCATIONX64 ShVendorx64 Sampel1|MSDN-PUASample1
MyVendor ProgramFilesFolder Msft|Microsoft
Vendorx64 Folder ProgramFiles64 Msft|Microsoft
ShVendor CommonFilesFolder Msft|Microsoft
ShVendorx64 CommonFiles64Folder Msft|Microsoft
Shrx86 LOKASI BERSAMA x32|komponen 32-bit
Shrx64 SHAREDLOCATIONX64 x64|Komponen 64-bit
Binx86 Lokasi Pemasangan x32|komponen 32-bit
Binx64 INSTALLLOCATIONX64 x64|Komponen 64-bit
App32 Binx86 myapp|komponen 32-bit yang tidak dibagikan
App64 Binx64 myapp|komponen 64-bit yang tidak dibagikan
Bagikan32 Shrx86 berbagi|komponen 32-bit bersama
Bagikan64 Shrx64 berbagi|komponen 64-bit bersama

 

Di sumber, tabel Direktori ini mengarah ke jalur direktori berikut.

\[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

Pada target, tabel Direktori ini dipetakan ke jalur direktori berikut. Jalur target bergantung pada konteks penginstalan dan sistem.

Konteks Penginstalan Sistem Contoh Jalur
Per-Machine Windows Server 2008 R2 dan Windows 7
Versi 32-bit
%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 dan Windows 7
Versi 64-bit
%ProgramFiles(x86)%\Msft\Sample1\x32\myapp
%ProgramFiles(x86)%\Berkas Umum\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 dan Windows 7
Versi 32-bit atau 64-bit
%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

 

Pendaftaran Aplikasi

PUASample.msi menambahkan subkunci ke kunci registri App Paths untuk aplikasi dan melakukan registrasi yang memungkinkan informasi aplikasi disimpan di registri di bawah kunci ini. Untuk informasi selengkapnya tentang Jalur Aplikasi dan pendaftaran aplikasi, lihat bagian PerceivedTypes, SystemFileAssociations, dan Pendaftaran Aplikasi di bagian ekstensibilitas shell dari Panduan Pengembang Shell . Pada waktu penginstalan, pengguna membuat keputusan untuk menginstal aplikasi dalam konteks penginstalan per pengguna atau per mesin. Pada saat paket tujuan ganda ditulis, pengembang paket tidak dapat mengetahui apakah pendaftaran harus dilakukan di bawah kunci HKEY_LOCAL_MACHINE atau HKEY_CURRENT_USER.

Pengembang paket menentukan identitas file untuk file aplikasi yang dapat dieksekusi di bidang File Tabel File File.

File Tabel (parsial)

Arsip Komponen_ Filename Ukuran File Versi Bahasa Atribut Urutan
MyAppFile ProductComponent PUASAMP1.EXE|PUASample1.exe 81920 0 1

 

Nilai yang akan disimpan dalam registri dapat ditentukan di bidang Nilai tabel Registri sebagai string Yang Diformat. Gunakan pengenal file yang ditentukan di kolom File dari tabel File , dan gunakan konvensi [#filekey] dari jenis Terformat, untuk menetapkan nilai default untuk kunci registri App Paths. Tindakan tingkat atas INSTALL melakukan tindakan dalam tabel InstallExecuteSequence. Setelah tindakan CostInitialize, FileCost, , dan InstallFinalize dalam tabel ini telah selesai, Penginstal Windows menggantikan substring yang diformat [#MyAppFile] dalam tabel Registri dengan jalur lengkap ke file aplikasi.

Sampel mendefinisikan properti kustom, RegRoot, untuk berisi lokasi kunci akar dan menggunakan tindakan kustom untuk mengatur ulang nilai properti jika pengguna memilih penginstalan per komputer. Gunakan properti kustom, RegRoot, dalam nilai string berformat apa pun yang mereferensikan lokasi akar. Dalam tabel properti paket PUASample.msi menentukan properti kustom dan mengatur nilai RegRoot ke HKCU. Ini menginisialisasi nilai properti untuk konteks instalasi per pengguna, konteks default yang direkomendasikan untuk paket dengan tujuan ganda.

Tabel Properti (parsial)

Harta benda Nilai
RegRoot HKCU

 

Dalam tabel CustomAction paket menentukan tindakan kustom bernama Set_RegRoot_HKLM. Nilai di kolom Tipe menandai ini sebagai Tipe Tindakan Kustom 51 tindakan kustom standar. Arti bidang Sumber dan Target dalam tabel CustomAction bergantung pada jenis tindakan kustom. Untuk informasi selengkapnya tentang jenis standar tindakan kustom, lihat Jenis Tindakan Kustom. Kolom Sumber untuk tindakan kustom Set_RegRoot_HKLM menunjukkan bahwa nilai properti RegRoot. Jika alat penginstal melakukan tindakan kustom Set_RegRoot_HKLM, ini mengatur ulang nilai properti RegRoot ke HKLM.

CustomAction Tabel (parsial)

Perbuatan Jenis Sumber Sasaran
Set_RegRoot_HKLM 51 [RegRoot] HKLM

 

Aksi level teratas INSTALL melaksanakan aksi-aksi dalam tabel InstallExecuteSequence, sesuai urutan yang ditentukan dalam kolom Urutan tabel tersebut. Nilai yang ditulis di bidang Urutan untuk tindakan kustom Set_RegRoot_HKLM (1501) menentukan bahwa tindakan kustom ini dilakukan setelah tindakan InstallInitialize (1500) dan sebelum tindakan ProcessComponents (1600.) Urutan ini memastikan bahwa rekaman untuk tindakan kustom Set_RegRoot_HKLM dievaluasi pada waktu penginstalan. Untuk informasi selengkapnya tentang urutan tindakan yang direkomendasikan dalam tabel InstallExecuteSequence, lihat topik Suggested InstallExecuteSequence. Sintaks pernyataan bersyarat yang ditentukan di bidang Kondisi menentukan bahwa tindakan Set_RegRoot_HKLM dilakukan hanya jika nilai properti ALLUSERS dievaluasi menjadi 1 pada waktu penginstalan. ALLUSERS nilai properti 1 menentukan penginstalan untuk setiap komputer.

InstallExecuteSequence Table (sebagian)

Perbuatan Keadaan Urutan
Set_RegRoot_HKLM ALLUSERS=1 1501

 

Berikut adalah rekaman dalam tabel Registri yang melakukan pendaftaran jika komponen ProductComponent diinstal. Nilai -1 di bidang Akar diperlukan untuk melakukan pendaftaran di bawah HKEY_LOCAL_MACHINE untuk penginstalan per pengguna dan di bawah HKEY_CURRENT_USER untuk penginstalan per pengguna. Rekaman dengan string kosong di kolom Registri menambahkan subkunci untuk aplikasi di bawah kunci registri AppPaths dan mengatur nilai "(Bawaan)" ke jalur lengkap file yang dapat dieksekusi aplikasi. Pendaftaran MyAppPathAlias memetakan file yang dapat dieksekusi ke alias aplikasi dan memungkinkan aplikasi diluncurkan jika pengguna mengetik alias "puapct" pada prompt baris perintah. Pendaftaran MyAppPathRegistration memetakan nama file yang dapat dieksekusi ke jalur lengkap file.

Pendaftaran Akar Kunci Nama Nilai Komponen
-1 Software\Microsoft\MyAppPathRegistrationLocation [RegRoot]\Software\Microsoft\Windows\CurrentVersion\App Paths\PUAPCT.exe ProductComponent
MyAppPathAlias -1 perangkat lunak\Microsoft\Windows\CurrentVersion\App Paths\PUAPCT.exe [#MyAppFile] ProductComponent
MyAppPathRegistration -1 Perangkat lunak\Microsoft\Windows\CurrentVersion\App Paths\PUASample1.exe [#MyAppFile] ProductComponent

 

Pembatalan Pendaftaran AutoPlay

PUASample.msi melakukan pendaftaran yang memungkinkan pengguna aplikasi mencegah Pemutaran Otomatis Perangkat Keras diluncurkan untuk perangkat yang dipilih. Untuk informasi tentang mendaftarkan handler untuk membatalkan AutoPlay sebagai respons terhadap suatu peristiwa, lihat topik Menyiapkan Perangkat Keras dan Perangkat Lunak untuk Digunakan dengan AutoPlay di bagian ekstensibilitas shell dari Panduan Pengembang Shell . Catatan berikut mendaftarkan handler yang ditentukan di bidang Nama saat komponen ProductComponent diinstal. Nilai -1 di bidang Akar diperlukan untuk menentukan ke Penginstal Windows bahwa pendaftaran harus dialihkan ke lokasi yang bergantung pada konteks penginstalan.

Tabel Registri

Pendaftaran Akar Kunci Nama Nilai Komponen
MyAutoplayBatalkanRegistrasi -1 SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\CancelAutoplay\CLSID 66A32FE6-229D-427b-A608-D273F40C034C ProductComponent

 

Pendaftaran Handler Pratinjau

PUASample.msi melakukan pendaftaran yang diperlukan untuk menginstal handler pratinjau yang memungkinkan pratinjau hanya-baca file .pua tanpa meluncurkan aplikasinya. Untuk informasi tentang mendaftarkan handler pratinjau, lihat topik Pendaftaran Handler Pratinjau di bagian Ekstensibilitas Shell dalam Panduan Pengembang Shell. Rekaman berikut dalam tabel Registry mendaftarkan handler saat komponen ProductComponent diinstal. Nilai -1 di bidang Akar diperlukan untuk menentukan ke Penginstal Windows bahwa pendaftaran harus dialihkan ke lokasi yang bergantung pada konteks penginstalan.

Tabel Registri

Registri Akar Kunci Nama Nilai Komponen
MyPreviewHandlerRegistration1 -1 Software\Classes\.pua puafile Komponen Produk
MyPreviewHandlerRegistration2 -1 Software\Microsoft\Windows\CurrentVersion\PreviewHandlers {1531d583-8375-4d3f-b5fb-d23bbd169f22} Microsoft Windows PUA TEST Preview Handler 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 Aplikasi Sampel 1 Pengelola Pratinjau 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} Nama Tampilan @shell32,-38242 ProductComponent
MyPreviewHandlerRegistration7 -1 Software\Classes\CLSID\{1531d583-8375-4d3f-b5fb-d23bbd169f22} Ikon notepad.exe,2 ProductComponent
MyPreviewHandlerRegistration8 -1 Software\Classes\CLSID\{1531d583-8375-4d3f-b5fb-d23bbd169f22}\InProcServer32 ThreadingModel Apartemen Komponen Produk
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