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.
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.
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.
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 |