Aracılığıyla paylaş


Tek Paket Yazma Örneği

Örnek PUASample.msi, Windows Server 2008 R2 ve Windows 7'de kullanıcı başına veya makine başına yükleme bağlamı yüklenebilen çift amaçlı bir Windows Installer 5.0 paketi örneğidir. Bu örnek paket, Tek Paket Yazma'nde açıklanan geliştirme yönergelerini izler.

Örneğin bir kopyasını alma

Bu örneğin bir kopyası ve bir Windows Installer veritabanı tablo düzenleyicisi Orca.exe, Windows Installer Geliştiricileri için Windows SDK Bileşenleri ,içinde bulunmaktadır. Örnek ve tablo düzenleyicisi, PUASample1.msi ve Orca.msiWindows Installer yükleme dosyaları olarak Windows Server 2008 R2 ve Windows 7 için Windows Yazılım Geliştirme Seti ile birlikte sağlanır.

Sistem Gereksinimleri

Orca.exeveritabanı düzenleyicisi, Windows Server 2008 R2 ve öncesi ile Windows 7 ve önceki sürümleri gerektirir. PUASample1.msiçift amaçlı paket, Windows Server 2008 R2 ve Windows 7'de makine başına veya kullanıcı başına yükleme bağlamı yüklenebilir. PUASample1.msi yalnızca Windows Server 2008 ve önceki sürümlerde, Windows Vista'da ve önceki sürümlerde makine başına bağlamında yüklenebilir. Örneği yüklemeden PUASample1.msi içeriğini incelemek için veritabanı düzenleyicisini yükleyebilirsiniz. Örnek veya düzenleyici paketlerini yüklemek için DisableMSI ilkesinin uygulama yüklemelerini engelleyen bir değere ayarlanmadığından emin olun.

Dual-Purpose Paketi Tanımlama

çift amaçlı paketler MSIINSTALLPERUSER özelliğinin değerini 1 olarak başlatmalıdır. Bu, paketin Windows Server 2008 R2 ve Windows 7'de makine başına veya kullanıcı başına bağlamında yüklenebileceğini tanımlar. Paketteki MSIINSTALLPERUSER özelliğini yalnızca Tek Paket Yazma açıklanan geliştirme yönergelerine göre yazılmışsa ve kullanıcılara paketi kullanıcı başına veya makine başına bağlamında yükleme seçeneği sağlamayı planlıyorsanız ayarlayın. Çift amaçlı paket ayrıca ALLUSERS özelliğinin değerini de 2 olarak başlatmalıdır. Bu, uygulama için varsayılan yükleme bağlamı olarak kullanıcı bazında tanımlar. ALLUSERS özelliğinin değeri 2 dışında bir değerse, Windows Installer MSIINSTALLPERUSER özelliğini yoksayar.

PUASample1.msiiçeriğini incelemek için Orca.exegibi bir Windows Installer veritabanı düzenleyicisi kullanın. Örnek paketteki Özelliği tablosu aşağıdaki iki girdiyi içerir.

Özellik Tablosu (kısmi)

Mülk Değer
ALLUSERS 2
MSIINSTALLPERUSER 1

 

Yükleme Bağlamı için Özel İletişim Kutusu

Örnek paketin kullanıcı arabirimi, kullanıcıların yükleme zamanında kullanıcı başına veya makine başına yükleme bağlamını seçmesini sağlayan verifyReadyDialog adlı özel bir iletişim kutusu örneği içerir. Diyalog tablosu, VerifyReadyDialog iletişim kutusunu açıklayan bir kayıt içerir. Bu iletişim kutusu msidbDialogAttributesVisible (1), msidbDialogAttributesModal (2), msidbDialogAttributesMinimize (4) ve msidbDialogAttributesTrackDiskSpace (32) iletişim stili bitlerikullandığından, Öznitelikler alanına girilen değer 39'dur. İletişim kutusunun başlık çubuğunda, ProductName özelliğinin değeriyle verilen bir başlık gösterilir.

İletişim Kutusu Tablo (kısmi)

Iletişim HCentering VCentering Genişlik Yükseklik Öznitelik Başlık İlk_Kontrol Kontrol_Varsayılan Kontrol_İptal
VerifyReadyDialog 50 50 480 280 39 [ProductName] InstallPerUser Sonraki İptal

 

Denetimi tablosu, "VerifyReadyDialog" iletişim kutusu tarafından görüntülenen denetimleri için girdiler içerir. İletişim kutusunda PushButton denetimleri ve Metin denetimi görüntülenir. Tüm denetimler, msidbControlAttributesEnabled (2) ve msidbControlAttributesVisible (1) denetim özniteliklerinikullanır. InstallPerMachine denetimi, msidbControlAttributesElevationShield (8388608) ElevationShield denetim özniteliğini de kullanır. Bu denetim özniteliği, InstallPerMachine denetimine Kullanıcı Hesabı Denetimi (UAC) yükseltme simgesini (kalkan simgesi) ekler ve kullanıcıya uygulamayı makine başına bağlamda yüklemek için UAC kimlik bilgilerinin gerekli olduğunu bildirir. Denetim tablosunun Metin alanındaki değer, denetim tarafından görüntülenen metin stili ve metindir. Önceden tanımlanmış stilleri kullanarak denetime metin ekleme hakkında daha fazla bilgi için Denetim tablosu konusundaki Metin alanının açıklamasına bakın.

Denetimi Tablosu (kısmi)

Iletişim_ Kontrol Tür Öznitelik Metin Kontrol_Sonraki
VerifyReadyDialog İptal Basmalı Düğme 3 {\Tahoma10}&İptal Sonraki
VerifyReadyDialog Önceki Basmalı Düğme 3 {\Tahoma10}<<&Önceki İptal
VerifyReadyDialog Sonraki Basmalı Düğme 3 {\Tahoma10}&Sonraki >> InstallPerUser
VerifyReadyDialog Metin2 Metin 3 Askıya alınan yüklemenizi tamamlamaya hazır mısınız?
VerifyReadyDialog InstallPerUser Basmalı Düğme 3 {\Tahoma10}Yalnızca &Benim İçin Yükle InstallPerMachine
VerifyReadyDialog InstallPerMachine Düğme 8388611 {\Tahoma10}&Herkes için Yükle Önceki
VerifyReadyDialog İptal Pushbutton 3 {\Tahoma10}&İptal Sonraki

 

ControlEvent tablosu, kullanıcı bir denetimle etkileşime geçtiğinde yükleyicinin gerçekleştirdiği ControlEventsveya eylemlerini belirtir. Kullanıcı InstallPerUser basma düğmesini etkinleştirdiğinde, OutOfDiskSpaceözelliği 1 ise, MSIINSTALLPERUSER özelliğinin değerini 1 olarak ayarlarsa, ALLUSERS özelliğinin değerini 2 olarak ayarlarsa, MSIFASTINSTALL özelliğini 1 olarak ayarlarsa, kullanıcı arabirimi bir OutOfDisk iletişim kutusu görüntüler. ve döndürür. MSIFASTINSTALL özelliği ayarlandığından yükleme sırasında Sistem Geri Yükleme noktası oluşturulmaz. Kullanıcı InstallPerMachine düğmesine tıkladığında, OutOfDiskSpace özelliği 1 ise kullanıcı arabirimi bir OutOfDisk iletişim kutusu görüntüler, ALLUSERS özelliğinin değerini 1 olarak ayarlar ve geri döner.

ControlEvent Tablosu (kısmi)

Iletişim_ Kontrol_ Olay Tartışma Koşul Sipariş
VerifyReadyDialog InstallPerUser SpawnDialog OutOfDisk OutOfDiskSpace = 1 1
VerifyReadyDialog InstallPerUser Diyaloğu Sonlandır Dönmek OutOfDiskSpace <> 1 5
VerifyReadyDialog InstallPerUser [MSIINSTALLPERUSER] 1 1 2
VerifyReadyDialog InstallPerUser [ALLUSERS] 2 1 3
VerifyReadyDialog InstallPerMachine SpawnDialog OutOfDisk OutOfDiskSpace = 1 1
VerifyReadyDialog InstallPerMachine Diyaloğu Bitir Dönmek OutOfDiskSpace <> 1 3
VerifyReadyDialog InstallPerMachine [ALLUSERS] 1 1 2
Hazır Diyalogunu Doğrula InstallPerUser [MSIFASTINSTALL] 1 1 4

 

InstallPerUser denetimi, Windows Installer Windows Installer 5.0'dan önceki bir Windows Installer sürümü kullanılarak herhangi bir yüklemenin kullanıcı arabiriminden kaldırılmalıdır. Örnek paketteki ControlCondition tablosu, geçerli sürüm Windows Installer 5.0'dan küçükse InstallPerUser denetimini devre dışı bırakmaya ve gizlemeye yönelik dört girdi içerir. Tablo, bu koşulu tanımlamak için VersionMsi özelliğinin değerini ve koşullu deyim söz dizimini kullanır. Eylem alanında belirtilen eylem yalnızca Koşul alanındaki deyim true olduğunda gerçekleştirilir.

ControlCondition Tablosu (kısmi)

Iletişim_ Kontrol_ Eylem Koşul
Doğrulamaya Hazır Dialog InstallPerUser Etkinleştir VersionMsi >= "5.00"
VerifyReadyDialog InstallPerUser Devre dışı bırakmak VersionMsi < "5.00"
VerifyReadyDialog InstallPerUser Göstermek VersionMsi >= "5.00"
VerifyReadyDialog InstallPerUser Gizlemek VersionMsi < "5.00"

 

Dizin Yapısını Belirtme

PUASample1.msiveritabanının Dizini tablosunu incelemek için düzenleyiciyi kullanın. Directory_Parent alanında boş dize bulunan Dizin Tablosu kaydı, hem kaynak hem de hedef dizin ağaçlarının kök dizinini temsil eder. TARGETDIR özelliği tanımlanmamışsa, yükleyici yükleme zamanında değerini ROOTDRIVE özelliğinin değerine ayarlar. SourceDir özelliği tanımlanmamışsa, yükleyici değerini Windows Installer paketini (.msi dosyası) içeren dizinin konumuna ayarlar. Dizin adları kısa|uzun biçimi kullanılarak belirtilir.

Dizin Tablosu (kısmi)

Dizin Dizin_Ebeveyni DefaultDir
TARGETDIR SourceDir
Program Dosyaları Klasörü TARGETDIR .
Program Menüsü Klasörü TARGETDIR .
Kurulum Yeri MyVendor Örnek1|MSDN-PUASample1
MyVendor ProgramFilesFolder Msft|Microsoft, Microsoft Türkiye

 

Kaynakta, bu Directory tablosu aşağıdaki dizin yollarına çözümür.

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

Hedefte, Dizin tablosu aşağıdaki tablodaki yollarla çözülür. Yükleyici, ProgramFilesFolder ve ProgramMenuFolder özelliklerinin değerlerini, yükleme bağlamı ve sistemin Windows Server 2008 R2 ve Windows 7'nin 32 bit veya 64 bit sürümleri olup olmadığına bağlı konumlara ayarlar. Hedef klasörlerin yolları, kullanıcının kullanıcı başına mı yoksa makine başına yükleme mi seçtiğine bağlıdır.

Yükleme Bağlamı Sistem Örnek Yollar
Per-Machine Windows Server 2008 R2 ve Windows 7
32 bit sürüm
%ProgramFiles%\Msft\Sample1
%ALLUSERSPROFILE%\Microsoft\Windows\Başlat Menüsü\Programlar
Per-Machine Windows Server 2008 R2 ve Windows 7
64 bit sürüm
%ProgramFiles(x86)%\Msft\Sample1
%ALLUSERSPROFILE%\Microsoft\Windows\Başlat Menüsü\Programlar
Per-User Windows Server 2008 R2 ve Windows 7
32 bit veya 64 bit sürüm
%USERPROFILE%\AppData\Local\Programs\Msft\Sample1
%APPDATA%\Microsoft\Windows\Başlat Menüsü\Programlar

 

Kullanıcı başına uygulamalar, ProgramFilesFolder özelliği değeriyle belirtilen Programlar klasörünün altındaki alt klasörlerde depolanmalıdır. Genellikle, uygulamanın yolu aşağıdaki formu alır.

%LOCALAPPDATA%\Programs\ISV adı\AppName.

Kullanıcı başına yapılandırma verileri, ProgramMenuFolder özelliğinin değeriyle belirtilen Programlar klasöründe depolanmalıdır. Bu klasör genellikle aşağıdaki yolda bulunur.

%APPDATA%\Microsoft\Windows\Başlat Menüsü\Programlar

32 bit Windows Installer Paketi bileşenleri yüklüyorsanız, Directory tablosundaki ProgramFilesFolderve CommonFilesFolder özelliğini kullanın. 64 bit Windows Installer Paketi bileşenlerini yüklüyorsanız, ProgramFiles64Folder ve CommonFiles64Folder özelliklerini kullanın. Uygulamanız aynı bileşenin aynı ada sahip 32 bit ve 64 bit sürümlerini içeriyorsa, bu sürümlerin farklı dizinlere kaydedildiğinden emin olun veya onlara farklı adlar verin.

Aşağıdaki Directory tablosu, 32 bit ve 64 bit bileşenleri içeren ve uygulamalar arasında paylaşılan bazı bileşenleri içeren bir paketle uyumlu bir dizin düzeni örneği sağlar.

Dizin Dizin_Üst VarsayılanDizin
TARGETDIR SourceDir
Program Dosyaları Klasörü TARGETDIR .:Prog32
ProgramFiles64Folder TARGETDIR .:Prog64
OrtakDosyalarDizini TARGETDIR .:Share32
OrtakDosyalar64Klasörü TARGETDIR .:Share64
Program Menüsü Klasörü TARGETDIR .:Örnek1|MSDN-PUASample1
KURULUM KONUMU MyVendor Örnek1|MSDN-PUASample1
INSTALLLOCATIONX64 Vendorx64 Örnek1|MSDN-PUASample1
Paylaşılan Konum ShVendor Örnek1|MSDN-PUASample1
SHAREDLOCATIONX64 ShVendorx64 Örnek1|MSDN-PUASample1
MyVendor Program Dosyaları Klasörü Msft|Microsoft
Vendorx64 Program Dosyaları 64 Klasörü Msft|Microsoft
ShVendor OrtakDosyalarKlasörü Msft|Microsoft
ShVendorx64 CommonFiles64Folder Msft|Microsoft
Shrx86 PAYLAŞILAN KONUM x32|32 bit bileşenler
Shrx64 SHAREDLOCATIONX64 x64|64 bit bileşenler
Binx86 KURULUMYERİ x32|32 bit bileşenler
Binx64 INSTALLLOCATIONX64 x64|64 bit bileşenler
Uygulama32 Binx86 myapp|paylaşılmamış 32-bit bileşenler
Uygulama64 Binx64 myapp|paylaşılmayan 64 bit bileşenler
Paylaş32 Shrx86 paylaşılan|paylaşılan 32-bit bileşenler
Share64 Shrx64 paylaşılan|paylaşılan 64 bit bileşenler

 

Kaynakta, bu Directory tablosu aşağıdaki dizin yollarına çözümür.

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

Hedefte yer alan bu Dizin tablosu, aşağıdaki dizin yollarına çözülür. Hedef yollar, yükleme bağlamı ve sisteme bağlıdır.

Yükleme Bağlamı Sistem Örnek Yollar
Per-Machine Windows Server 2008 R2 ve Windows 7
32 bit sürüm
%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 ve Windows 7
64 bit sürüm
%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 ve Windows 7
32 bit veya 64 bit sürüm
%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

 

Uygulama Kaydı

PUASample.msi, uygulamanın Uygulama Yolları kayıt defteri anahtarına bir alt anahtar ekler ve uygulama bilgilerinin bu anahtar altında kayıt defterine kaydedilmesini sağlayan kayıtlar gerçekleştirir. Uygulama Yolları ve uygulama kaydı hakkında daha fazla bilgi için, Kabuk Geliştirici Kılavuzuiçindeki kabuk genişletilebilirliği bölümünde yer alan PerceivedTypes, SystemFileAssociations ve Application Registration kısmına bakın. Yükleme sırasında, kullanıcı uygulamayı kullanıcı başına veya makine başına yükleme bağlamında yükleme kararı alır. İki amaçlı paket yazıldığında, paket geliştiricisi kayıtların HKEY_LOCAL_MACHINE veya HKEY_CURRENT_USER anahtarları altında gerçekleştirilip gerçekleştirilemeyeceğini bilemez.

Paket geliştiricisi, uygulamanın yürütülebilir dosyasının dosya tanımlayıcısını Dosya Tablosunun Dosya alanında tanımlar.

Dosya Tablosu (kısmi)

Dosya Parça_ Dosyaadı Dosya Boyutu Sürüm Dil Öznitelik Sıra
MyAppFile Ürün Bileşeni PUASAMP1.EXE|PUASample1.exe 81920 0 1

 

Kayıt defterine kaydedilecek değerler, Kayıt Defteri tablosunun Değer alanında Biçimlendirilmiş dizesi olarak belirtilebilir. Uygulama Yolları kayıt defteri anahtarının varsayılan değerini belirtmek için, Dosya tablosunun Dosya alanında tanımlanan dosya tanımlayıcısını ve Biçimlendirilmiş türün [#dosya anahtarı] kuralını kullanın. En üst düzey INSTALL eylemi, InstallExecuteSequence tablosundaki eylemleri gerçekleştirir. CostInitialize, FileCostve InstallFinalize eylemleri tamamlandıktan sonra, Windows Installer Kayıt Defteri tablosundaki biçimlendirilmiş [#MyAppFile] alt dizesini uygulama dosyasının tam yoluyla değiştirir.

Örnek, kök anahtarın konumunu içerecek özel bir regroot özelliğini tanımlar ve kullanıcı makine başına bir yükleme seçerse özellik değerini sıfırlamak için özel bir eylem kullanır. Kök konuma başvuran biçimlendirilmiş dize değerlerinde RegRoot özel özelliğini kullanın. Özelliği tablosunda PUASample.msi paketi özel özelliği tanımlar ve RegRoot değerini HKCU olarak ayarlar. Bu, çift amaçlı paketler için önerilen varsayılan bağlam olan kullanıcı başına yükleme bağlamı için özelliğinin değerini başlatır.

Özellik Tablosu (kısmi)

Mülk Değer
RegRoot HKCU

 

CustomAction tablosunda paket, Set_RegRoot_HKLM adlı özel bir eylem tanımlar. Tür alanındaki değer bunu standart özel eylem Özel Eylem Türü 51 olarak tanımlar. CustomAction tablosundaki Kaynak ve Hedef alanlarının anlamı özel eylem türüne bağlıdır. Standart özel eylem türleri hakkında daha fazla bilgi için bkz. Özel Eylem Türleri. Set_RegRoot_HKLM özel eyleminin Kaynak alanı RegRoot özelliğinin değerini belirtir. Yükleyici özel Set_RegRoot_HKLM eylemi gerçekleştirirse, bu, RegRoot özelliğinin değerini HKLM'ye sıfırlar.

ÖzelEylem Tablosu (kısmi)

Eylem Tür Kaynak Hedef
Set_RegRoot_HKLM 51 [RegRoot] HKLM

 

En üst düzey INSTALL eylemi, InstallExecuteSequence tablosundaki eylemleri, bu tablonun Sıra alanında belirtilen sırayla gerçekleştirir. Set_RegRoot_HKLM özel eyleminin (1501) Sıra alanında yazılan değer, bu özel eylemin InstallInitialize eyleminden (1500) sonra ve ProcessComponents eyleminden (1600) önce gerçekleştirildiğini belirtir. Bu dizi, Set_RegRoot_HKLM özel eyleminin kaydının yükleme zamanında değerlendirilmesini sağlar. InstallExecuteSequence tablosunda önerilen eylem dizisi hakkında daha fazla bilgi için Önerilen InstallExecuteSequence konusuna bakın. Koşul alanında yazılan koşullu deyim söz dizimi, Set_RegRoot_HKLM eyleminin yalnızca ALLUSERS özelliğinin değeri yükleme zamanında 1 olarak değerlendirilirse gerçekleştirildiğini belirtir. 1 değerine sahip ALLUSERS özelliği, makine başına bir kurulum belirtir.

InstallExecuteSequence Tablosu (kısmi)

Eylem Koşul Sıra
Kayıt Kökünü Ayarla: Set_RegRoot_HKLM ALLUSERS=1 1501

 

Kayıt Defteri tablosundaki aşağıdaki kayıtlar, ProductComponent bileşeni yüklüyse kayıtları gerçekleştirir. Kök alanındaki -1 değeri, kullanıcı başına yükleme için HKEY_LOCAL_MACHINE ve kullanıcı başına yükleme için HKEY_CURRENT_USER altında kaydı gerçekleştirmek için gereklidir. Kayıt Defteri alanında boş dize içeren kayıt, AppPaths kayıt defteri anahtarı altında uygulama için bir alt anahtar ekler ve "(Varsayılan)" değerini uygulamanın yürütülebilir dosyasının tam yoluna ayarlar. MyAppPathAlias kaydı, yürütülebilir dosyayı bir uygulama diğer ismiyle eşler ve kullanıcı komut satırı isteminde "puapct" diğer ismini yazarsa uygulamanın başlatılmasını sağlar. MyAppPathRegistration kaydı, yürütülebilir dosyanın adını dosyanın tam dosya yoluna eşler.

Kayıt defteri Kök Anahtar Ad Değer Bileşen
-1 Software\Microsoft\MyAppPathRegistrationLocation [RegRoot]\Software\Microsoft\Windows\CurrentVersion\App Paths\PUAPCT.exe Ürün Bileşeni
MyAppPathAlias -1 Yazılım\Microsoft\Windows\CurrentVersion\App Paths\PUAPCT.exe [#MyAppFile] Ürün Bileşeni
MyAppPathRegistration -1 Yazılım\Microsoft\Windows\CurrentVersion\App Paths\PUASample1.exe [#MyAppFile] Ürün Bileşeni

 

AutoPlay Kaydını İptal Et

Uygulama kullanıcısının, seçilen cihazlar için Donanım Otomatik Yürütme'yi başlatmasını engellemesini sağlayan kayıtları PUASample.msi gerçekleştirir. Bir olaya yanıt olarak Otomatik Yürütme'yi iptal etmek üzere bir işleyici kaydetme hakkında bilgi için, Kabuk Geliştirici Kılavuzuiçindeki kabuk genişletilebilirliği bölümünde bulunan Donanım ve Yazılımı Otomatik Yürütme ile Kullanıma Hazırlama konusuna bakın. Aşağıdaki kayıt, ProductComponent bileşeni yüklendiğinde Ad alanında belirtilen işleyiciyi kaydeder. Kök alanındaki -1 değeri, Windows Installer'a kaydın yükleme bağlamını temel alan bir konuma yeniden yönlendirileceğini belirtmek için gereklidir.

Kayıt Defteri Tablosu

Kayıt defteri Kök Anahtar İsim Değer Bileşen
MyAutoplayKaydınıİptalEtme -1 SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\CancelAutoplay\CLSID 66A32FE6-229D-427b-A608-D273F40C034C Ürün Bileşeni

 

önizleme işleyicisi kaydı

PUASample.msi, uygulamayı başlatmadan .pua dosyalarının salt okunur önizlemesini sağlayan bir önizleme işleyicisi yüklemek için gereken kayıtları gerçekleştirir. Önizleme işleyicilerini kaydetme hakkında bilgi için, Kabuk Geliştirici Kılavuzuiçindeki kabuk genişletilebilirliği bölümünde yer alan Önizleme İşleyicilerini Kaydetme konusuna bakın. Kayıt Defteri tablosundaki aşağıdaki kayıtlar, ProductComponent bileşeni yüklendiğinde işleyiciyi kaydeder. Kök alanındaki -1 değeri, Windows Installer'a kaydın yükleme bağlamını temel alan bir konuma yeniden yönlendirileceğini belirtmek için gereklidir.

Kayıt Defteri Tablosu

Kayıt defteri Kök Anahtar Ad Değer Bileşen
MyPreviewHandlerRegistration1 -1 Yazılım\Sınıflar\.pua puafile Ürün Bileşeni
MyPreviewHandlerRegistration2 -1 Software\Microsoft\Windows\CurrentVersion\PreviewHandlers {1531d583-8375-4d3f-b5fb-d23bbd169f22} Microsoft Windows PUA TEST Önizleme İşleyicisi Ürün Bileşeni
MyPreviewHandlerRegistration3 -1 Software\Classes\puafile\ShellEx\{8895b1c6-b41f-4c1c-a562-0d564250836f} {1531d583-8375-4d3f-b5fb-d23bbd169f22} Ürün Bileşeni
MyPreviewHandlerRegistration4 -1 Software\Classes\CLSID\{1531d583-8375-4d3f-b5fb-d23bbd169f22} Per-User Application Örnek 1 Önizleme İşleyicisi Ürün Bileşeni
MyPreviewHandlerRegistration5 -1 Software\Classes\CLSID\{1531d583-8375-4d3f-b5fb-d23bbd169f22} AppID {6d2b5079-2f0b-48dd-ab7f-97cec514d30b} Ürün Bileşeni
MyPreviewHandlerRegistration6 -1 Software\Classes\CLSID\{1531d583-8375-4d3f-b5fb-d23bbd169f22} DisplayName @shell32,-38242 Ürün Bileşeni
MyPreviewHandlerRegistration7 -1 Software\Classes\CLSID\{1531d583-8375-4d3f-b5fb-d23bbd169f22} İkon notepad.exe,2 Ürün Bileşeni
MyPreviewHandlerRegistration8 -1 Software\Classes\CLSID\{1531d583-8375-4d3f-b5fb-d23bbd169f22}\InProcServer32 ThreadingModel Daire Ürün Bileşeni
MyPreviewHandlerRegistration9 -1 Software\Classes\CLSID\{1531d583-8375-4d3f-b5fb-d23bbd169f22}\InProcServer32 #%%SystemRoot%\system32\shell32.dll Ürün Bileşeni
MyPreviewHandlerRegistration10 -1 Software\Classes\CLSID\{1531d583-8375-4d3f-b5fb-d23bbd169f22}\InProcServer32 ProgID puafile Ürün Bileşeni