Beispiel für einmaliges Erstellen von Paketen

Das Beispiel PUASample.msi ist ein Beispiel für ein duales Windows Installer 5.0-Paket, das entweder im Installationskontext pro Benutzer oder pro Computer auf Windows Server 2008 R2 und Windows 7 installiert werden kann. Dieses Beispielpaket folgt den in der Einzelpaketerstellung beschriebenen Entwicklungsrichtlinien.

Abrufen einer Kopie des Beispiels

Eine Kopie dieses Beispiels und ein Windows Installer-Datenbanktabellen-Editor, Orca.exe, befinden sich in den Windows SDK-Komponenten für Windows Installer-Entwickler. Der Beispiel- und Tabellen-Editor wird mit dem Windows Software Development Kit für Windows Server 2008 R2 und Windows 7 als Windows Installer-Installationsdateien PUASample1.msi und Orca.msi bereitgestellt.

Systemanforderungen

Der Datenbank-Editor, Orca.exe, erfordert Windows Server 2008 R2 und früher und Windows 7 und früher. Das duale Paket, PUASample1.msi, kann entweder im Installationskontext pro Computer oder im Benutzerkontext auf Windows Server 2008 R2 und Windows 7 installiert werden. PUASample1.msi können nur im Computerkontext auf Windows Server 2008 und früher und Windows Vista und früher installiert werden. Sie können den Datenbank-Editor installieren, um den Inhalt von PUASample1.msi zu untersuchen, ohne das Beispiel zu installieren. Um die Beispiel- oder Editorpakete zu installieren, stellen Sie sicher, dass die DisableMSI-Richtlinie nicht auf einen Wert festgelegt ist, der Anwendungsinstallationen blockiert.

Identifizieren eines Dual-Purpose Pakets

Dualzweckpakete sollten den Wert der MSIINSTALLPERUSER-Eigenschaft auf 1 initialisieren. Dadurch wird das Paket als fähig identifiziert, entweder auf dem Computer oder im Benutzerkontext auf Windows Server 2008 R2 und Windows 7 installiert zu werden. Legen Sie die MSIINSTALLPERUSER-Eigenschaft im Paket nur dann fest, wenn sie nach den in single Package Authoring beschriebenen Entwicklungsrichtlinien geschrieben wurde, und wenn Sie benutzern die Möglichkeit geben möchten, das Paket entweder im Benutzer- oder Computerkontext zu installieren. Ein Dualzweckpaket sollte auch den Wert der ALLUSERS-Eigenschaft auf 2 initialisieren. Dadurch wird pro Benutzer als Standardinstallationskontext für die Anwendung angegeben. Wenn der Wert der ALLUSERS-Eigenschaft einen anderen Wert als 2 aufweist, ignoriert Windows Installer die MSIINSTALLPERUSER-Eigenschaft.

Verwenden Sie einen Windows Installer-Datenbank-Editor, z. B. Orca.exe, um den Inhalt PUASample1.msi zu untersuchen. Die Eigenschaftstabelle im Beispielpaket enthält die folgenden beiden Einträge.

Eigenschaft Tabelle (teilweise)

Eigenschaft Wert
ALLUSERS 2
MSIINSTALLPERUSER 1

 

Benutzerdefiniertes Dialogfeld für Installationskontext

Die Benutzeroberfläche des Beispielpakets enthält ein Beispiel für ein benutzerdefiniertes Dialogfeld , VerifyReadyDialog, mit dem Benutzer entweder den Installationskontext pro Benutzer oder pro Computer zur Installation auswählen können. Die Dialogfeldertabelle enthält einen Datensatz, der das Dialogfeld "VerifyReadyDialog" beschreibt. Der wert, der im Feld "Attribute" eingegeben wird, ist 39, da dieses Dialogfeld die msidbDialogAttributesVisible (1), msidbDialogAttributesModal (2), msidbDialogAttributesMinimize (4) und msidbDialogAttributesTrackDiskSpace (32) -Dialogfeldformatvorlagen verwendet. Die Titelleiste des Dialogfelds zeigt einen Titel an, der durch den Wert der ProductName-Eigenschaft angegeben wird.

Dialogfeld Tabelle (teilweise)

Dialog HCentering VCentering Breite Höhe Attribute Titel Control_First Control_Default Control_Cancel
VerifyReadyDialog 50 50 480 280 39 [ProductName] InstallPerUser Nächste Abbrechen

 

Die Steuerelementtabelle enthält Einträge für die Steuerelemente , die im Dialogfeld "VerifyReadyDialog" angezeigt werden. Das Dialogfeld zeigt PushButton-Steuerelemente und ein Text-Steuerelement an. Alle Steuerelemente verwenden die Attribute msidbControlAttributesEnabled (2) und msidbControlAttributesVisible (1). Das InstallPerMachine-Steuerelement verwendet auch das ElevationShield-Steuerelementattribut msidbControlAttributesElevationShield (8388608.) Dieses Steuerelement-Attribut fügt dem InstallPerMachine-Steuerelement das UAC-Erweiterungssymbol (Schildsymbol) hinzu und informiert den Benutzer darüber, dass UAC-Anmeldeinformationen erforderlich sind, um die Anwendung im Computerkontext zu installieren. Der Wert im Textfeld der Steuerelementtabelle ist die Textformatvorlage und der Text, der vom Steuerelement angezeigt wird. Weitere Informationen zum Hinzufügen von Text zu einem Steuerelement mithilfe vordefinierter Formatvorlagen finden Sie in der Beschreibung des Textfelds im Thema "Steuerelementtabelle".

Steuerung Tabelle (teilweise)

Dialog_ Control type attribute Text Control_Next
VerifyReadyDialog Abbrechen Pushbutton 3 {\Tahoma10}& Abbrechen Nächste
VerifyReadyDialog Vorherige Pushbutton 3 {\Tahoma10}<<& Vorherigen Abbrechen
VerifyReadyDialog Nächste Pushbutton 3 {\Tahoma10}& Nächster >> InstallPerUser
VerifyReadyDialog Text2 Text 3 Sind Sie bereit, Ihre angehaltene Installation abzuschließen?
VerifyReadyDialog InstallPerUser Pushbutton 3 {\Tahoma10} Nur für &mich installieren InstallPerMachine
VerifyReadyDialog InstallPerMachine Pushbutton 8388611 {\Tahoma10} Installieren für &jeden Vorherige
VerifyReadyDialog Abbrechen Pushbutton 3 {\Tahoma10}& Abbrechen Nächste

 

Die ControlEvent-Tabelle gibt die ControlEvents oder Aktionen an, wenn der Benutzer mit einem Steuerelement interagiert. Wenn ein Benutzer die InstallPerUser-Pushbutton aktiviert, zeigt die Benutzeroberfläche ein OutOfDisk-Dialogfeld an, wenn die OutOfDiskSpace-Eigenschaft 1 ist, legt den Wert der MSIINSTALLPERUSER-Eigenschaft auf 1 fest, legt den Wert der ALLUSERS-Eigenschaft auf 2 fest, legt die MSIFASTINSTALL-Eigenschaft auf 1 fest und gibt zurück. Da die MSIFASTINSTALL-Eigenschaft festgelegt ist, wird kein Systemwiederherstellungspunkt für die Installation generiert. Wenn ein Benutzer die InstallPerMachine-Pushbutton aktiviert, zeigt die Benutzeroberfläche ein OutOfDisk-Dialogfeld an, wenn die OutOfDiskSpace-Eigenschaft 1 ist, legt den Wert der ALLUSERS-Eigenschaft auf 1 fest und gibt zurück.

ControlEvent Tabelle (teil)

Dialog_ Control_ Ereignis Argument Bedingung Order
VerifyReadyDialog InstallPerUser SpawnDialog OutOfDisk OutOfDiskSpace = 1 1
VerifyReadyDialog InstallPerUser EndDialog Rückgabewert 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 Rückgabewert OutOfDiskSpace <> 1 3
VerifyReadyDialog InstallPerMachine [ALLUSERS] 1 1 2
VerifyReadyDialog InstallPerUser [MSIFASTINSTALL] 1 1 4

 

Das InstallPerUser-Steuerelement sollte aus der Benutzeroberfläche einer beliebigen Installation entfernt werden, die eine Windows Installer-Version vor Windows Installer Windows Installer 5.0 verwendet. Die Tabelle "ControlCondition" im Beispielpaket enthält vier Einträge, die das InstallPerUser-Steuerelement deaktivieren und ausblenden, wenn die aktuelle Version kleiner als Windows Installer 5.0 ist. In der Tabelle wird der Wert der VersionMsi-Eigenschaft und die Syntax der bedingten Anweisung verwendet, um diese Bedingung zu definieren. Die im Feld "Aktion" angegebene Aktion wird nur ausgeführt, wenn die Anweisung im Bedingungsfeld wahr ist.

ControlCondition Tabelle (teil)

Dialog_ Control_ Aktion Bedingung
VerifyReadyDialog InstallPerUser Aktivieren VersionMsi >= "5.00"
VerifyReadyDialog InstallPerUser Deaktivieren VersionMsi < "5.00"
VerifyReadyDialog InstallPerUser Anzeigen VersionMsi >= "5.00"
VerifyReadyDialog InstallPerUser Ausblenden VersionMsi < "5.00"

 

Angeben der Verzeichnisstruktur

Verwenden Sie den Datenbank-Editor, um die Verzeichnistabelle von PUASample1.msi zu untersuchen. Der Datensatz der Verzeichnistabelle mit einer leeren Zeichenfolge in seinem Directory_Parent Feld stellt das Stammverzeichnis der Quell- und Zielverzeichnisstrukturen dar. Wenn die TARGETDIR-Eigenschaft nicht definiert ist, legt das Installationsprogramm den Wert zur Installationszeit auf den Wert der ROOTDRIVE-Eigenschaft fest. Wenn die SourceDir-Eigenschaft nicht definiert ist, legt das Installationsprogramm seinen Wert auf den Speicherort des Verzeichnisses fest, das das Windows Installer-Paket (.msi Datei) enthält.) Die Verzeichnisnamen werden mithilfe des kurzen|long-Formats angegeben.

Verzeichnis Tabelle (teil)

Verzeichnis Directory_Parent DefaultDir
TARGETDIR SourceDir
ProgramFilesFolder TARGETDIR .
ProgramMenuFolder TARGETDIR .
INSTALLLOCATION MyVendor Beispiel1| MSDN-PUASample1
MyVendor ProgramFilesFolder Msft| Microsoft

 

In der Quelle wird diese Verzeichnistabelle auf die folgenden Verzeichnispfade aufgelöst.

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

In der Zieltabelle wird die Verzeichnistabelle in die Pfade in der folgenden Tabelle aufgelöst. Das Installationsprogramm legt die Werte der Eigenschaften ProgramFilesFolder und ProgramMenuFolder auf Speicherorte fest, die vom Installationskontext abhängig sind und ob das System die 32-Bit- oder 64-Bit-Versionen von Windows Server 2008 R2 und Windows 7 ist. Die Pfade zu den Zielordnern hängen davon ab, ob der Benutzer eine Installation pro Benutzer oder pro Computer auswählt.

Installationskontext System Beispielpfade
Per-Machine Windows 2008 R2 und Windows Server 7
32-Bit-Version
%ProgramFiles%\Msft\Sample1
%ALLUSERSPROFILE%\Microsoft\Windows\Startmenü\Programme
Per-Machine Windows 2008 R2 und Windows Server 7
64-Bit-Version
%ProgramFiles(x86)%\Msft\Sample1
%ALLUSERSPROFILE%\Microsoft\Windows\Startmenü\Programme
Per-User Windows 2008 R2 und Windows Server 7
32-Bit- oder 64-Bit-Version
%USERPROFILE%\AppData\Local\Programme\Msft\Sample1
%APPDATA%\Microsoft\Windows\Startmenü\Programme

 

Pro-Benutzer-Anwendungen sollten unter ordnern unter dem Ordner "Programme" gespeichert werden, der durch den Wert der ProgramFilesFolder-Eigenschaft angegeben ist. Normalerweise nimmt der Pfad zur Anwendung das folgende Formular.

%LOCALAPPDATA%\Programme\ISVnameAppName\.

Pro Benutzerkonfigurationsdaten sollten im Ordner "Programme" gespeichert werden, der durch den Wert der ProgramMenuFolder-Eigenschaft angegeben ist. In der Regel befindet sich dieser Ordner im folgenden Pfad.

%APPDATA%\Microsoft\Windows\Startmenü\Programme

Wenn Sie 32-Bit-Windows Installer Package-Komponenten installieren, verwenden Sie die ProgramFilesFolder- und CommonFilesFolder-Eigenschaft in der Verzeichnistabelle. Wenn Sie 64-Bit-Windows Installer Package-Komponenten installieren, verwenden Sie die Eigenschaften "ProgramFiles64Folder" und "CommonFiles64Folder". Wenn Ihre Anwendung 32-Bit- und 64-Bit-Versionen derselben Komponente enthält, stellen Sie sicher, dass diese Versionen in verschiedenen Verzeichnissen gespeichert werden oder ihnen unterschiedliche Namen geben.

In der folgenden Verzeichnistabelle finden Sie ein Beispiel für ein Verzeichnislayout, das mit einem Paket kompatibel ist, das 32-Bit- und 64-Bit-Komponenten enthält und einige Komponenten enthält, die über Anwendungen freigegeben werden.

Verzeichnis 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 Beispiel1| MSDN-PUASample1
INSTALLLOCATIONX64 Anbieterx64 Beispiel1| MSDN-PUASample1
SHAREDLOCATION ShVendor Beispiel1| MSDN-PUASample1
SHAREDLOCATIONX64 ShVendorx64 Beispiel1| MSDN-PUASample1
MyVendor ProgramFilesFolder Msft| Microsoft
Anbieterx64 ProgramFiles64Folder Msft| Microsoft
ShVendor CommonFilesFolder Msft| Microsoft
ShVendorx64 CommonFiles64Folder Msft| Microsoft
Shrx86 SHAREDLOCATION x32|32-Bit-Komponenten
Shrx64 SHAREDLOCATIONX64 x64|64-Bit-Komponenten
Binx86 INSTALLLOCATION x32|32-Bit-Komponenten
Binx64 INSTALLLOCATIONX64 x64|64-Bit-Komponenten
App32 Binx86 myapp|unshared 32-Bit-Komponenten
App64 Binx64 myapp|unshared 64-Bit-Komponenten
Share32 Shrx86 shared|shared 32-Bit-Komponenten
Freigeben64 Shrx64 shared|shared 64-Bit-Komponenten

 

In der Quelle wird diese Verzeichnistabelle in die folgenden Verzeichnispfade aufgelöst.

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

In der Zieltabelle wird diese Verzeichnistabelle in die folgenden Verzeichnispfade aufgelöst. Die Zielpfade hängen vom Installationskontext und system ab.

Installationskontext System Beispielpfade
Per-Machine Windows 2008 R2 und Windows Server 7
32-Bit-Version
%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\Startmenü\Programme\Beispiel1
Per-Machine Windows 2008 R2 und Windows Server 7
64-Bit-Version
%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\Startmenü\Programme\Beispiel1
Per-User Windows 2008 R2 und Windows Server 7
32-Bit- oder 64-Bit-Version
%LOCALAPPDATA%\Programs\Msft\Sample1\x32\myapp
%LOCALAPPDATA%\Programme\Common\Msft\Sample1\x32\shared
%LOCALAPPDATA%\Programme\Msft\Sample1\x64\myapp
%LOCALAPPDATA%\Programme\Common\Msft\Sample1\x64\shared
%APPDATA%\Microsoft\Windows\Startmenü\Programme\Beispiel1

 

Anwendungsregistrierung

Der PUASample.msi fügt dem Registrierungsschlüssel "App-Pfade" für die Anwendung einen Unterschlüssel hinzu und führt Registrierungen durch, mit denen Anwendungsinformationen in der Registrierung unter diesem Schlüssel gespeichert werden können. Weitere Informationen zu App-Pfaden und Anwendungsregistrierungen finden Sie im Shell-Entwicklerhandbuch unter "PerceivedTypes", "SystemFileAssociations" und "Anwendungsregistrierung". Zur Installationszeit entscheidet der Benutzer, die Anwendung entweder im Installationskontext pro Benutzer oder pro Computer zu installieren. Zum Zeitpunkt der Erstellung des dualen Pakets kann der Paketentwickler nicht wissen, ob die Registrierungen unter den schlüsseln HKEY_LOCAL_MACHINE oder HKEY_CURRENT_USER ausgeführt werden sollen.

Der Paketentwickler definiert den Dateibezeichner für die ausführbare Datei der Anwendung im Feld "Datei" der Dateitabelle .

Datei Tabelle (teilweise)

Datei Component_ FileName FileSize Version Sprache Attribute Sequenz
MyAppFile ProductComponent PUASAMP1.EXE|PUASample1.exe 81920 0 1

 

Werte, die in der Registrierung gespeichert werden sollen, können im Feld "Wert" der Registrierungstabelle als formatierte Zeichenfolge angegeben werden. Verwenden Sie den im Feld "Datei" der Tabelle "Datei " definierten Dateibezeichner und die [#filekey]-Konvention des formatierten Typs, um den Standardwert für den Registrierungsschlüssel "App-Pfade" anzugeben. Die Install-Aktion auf oberster Ebene führt die Aktionen in der Tabelle "InstallExecuteSequence " aus. Nachdem die Aktionen "CostInitialize", "FileCost" und "InstallFinalize" in dieser Tabelle abgeschlossen wurden, ersetzt der Windows Installer die formatierte Teilzeichenfolge [#MyAppFile] in der Registrierungstabelle durch den vollständigen Pfad zur Anwendungsdatei.

Im Beispiel wird eine benutzerdefinierte Eigenschaft , RegRoot, definiert, um den Speicherort des Stammschlüssels zu enthalten und eine benutzerdefinierte Aktion zum Zurücksetzen des Eigenschaftswerts verwendet, wenn der Benutzer eine Installation pro Computer auswäht. Verwenden Sie die benutzerdefinierte Eigenschaft RegRoot in allen formatierten Zeichenfolgenwerten, die auf den Stammspeicherort verweisen. In der Eigenschaftstabelle definiert das PUASample.msi-Paket die benutzerdefinierte Eigenschaft und legt den Wert von RegRoot auf HKCU fest. Dadurch wird der Wert der Eigenschaft für den Installationskontext pro Benutzer initialisiert, der empfohlene Standardkontext für duale Pakete.

Eigenschaft Tabelle (teilweise)

Eigenschaft Wert
RegRoot HKCU

 

In der Tabelle "CustomAction " definiert das Paket eine benutzerdefinierte Aktion mit dem Namen Set_RegRoot_HKLM. Der Wert im Feld "Typ" identifiziert dies als benutzerdefinierte Standardaktion vom Typ 51 . Die Bedeutung der Felder "Quelle" und "Ziel" in der Tabelle "CustomAction" hängt vom benutzerdefinierten Aktionstyp ab. Weitere Informationen zu den Standardtypen von benutzerdefinierten Aktionen finden Sie unter Benutzerdefinierte Aktionstypen. Das Feld "Quelle" für die benutzerdefinierte Aktion Set_RegRoot_HKLM gibt an, dass der Wert der RegRoot-Eigenschaft angegeben wird. Wenn das Installationsprogramm die Set_RegRoot_HKLM benutzerdefinierte Aktion ausführt, setzt dies den Wert der RegRoot-Eigenschaft auf HKLM zurück.

Customaction Tabelle (teilweise)

Aktion type `Source` Ziel
Set_RegRoot_HKLM 51 [RegRoot] HKLM

 

Die INSTALL-Aktion auf oberster Ebene führt die Aktionen in der Tabelle "InstallExecuteSequence " in der im Feld "Sequenz" dieser Tabelle angegebenen Sequenz aus. Der wert, der im Feld "Sequenz" für die Set_RegRoot_HKLM benutzerdefinierte Aktion (1501) erstellt wurde, gibt an, dass diese benutzerdefinierte Aktion nach der InstallInitialize-Aktion (1500) und vor der Aktion "ProcessComponents " (1600) ausgeführt wird.) Diese Sequenz stellt sicher, dass der Datensatz für die benutzerdefinierte Aktion Set_RegRoot_HKLM zur Installationszeit ausgewertet wird. Weitere Informationen zur empfohlenen Abfolge von Aktionen in der Tabelle "InstallExecuteSequence" finden Sie im Thema "Vorgeschlagene InstallationExecuteSequence" . Die im Feld "Bedingung" erstellte Syntax der bedingten Anweisung gibt an, dass die Set_RegRoot_HKLM Aktion nur ausgeführt wird, wenn der Wert der ALLUSERS-Eigenschaft zum Installationszeitpunkt auf 1 ausgewertet wird. Ein ALLUSERS-Eigenschaftswert von 1 gibt eine Installation pro Computer an.

InstallExecuteSequence Tabelle (teil)

Aktion Bedingung Sequenz
Set_RegRoot_HKLM ALLUSERS=1 1501

 

Die folgenden Datensätze in der Registrierungstabelle führen die Registrierungen aus, wenn die ProductComponent-Komponente installiert ist. Der Wert -1 im Stammfeld ist erforderlich, um die Registrierung unter HKEY_LOCAL_MACHINE für eine Pro-Benutzer-Installation und unter HKEY_CURRENT_USER für eine Pro-Benutzer-Installation auszuführen. Der Datensatz mit einer leeren Zeichenfolge im Registrierungsfeld fügt dem Anwendungsschlüssel unter dem AppPaths-Registrierungsschlüssel einen Unterschlüssel hinzu und legt den Wert "(Default)" auf den vollständigen Pfad der ausführbaren Datei der Anwendung fest. Die MyAppPathAlias-Registrierung ordnet die ausführbare Datei einem Anwendungsalias zu und ermöglicht den Start der Anwendung, wenn der Benutzer den Alias "puapct" in einer Befehlszeile eingibt. Die MyAppPathRegistration-Registrierung ordnet den Namen der ausführbaren Datei dem vollständigen Pfad der Datei zu.

Registrierung Root Schlüssel Name Wert Komponente
-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

 

Registrierung automatisch wiedergeben

Die PUASample.msi führt Registrierungen aus, die den Anwendungsbenutzer aktivieren, um die automatische Wiedergabe der Hardware für ausgewählte Geräte zu verhindern. Informationen zum Registrieren eines Handlers zum Abbrechen der automatischen Wiedergabe in Reaktion auf ein Ereignis finden Sie im Abschnitt "Vorbereiten von Hardware und Software für die Verwendung mit automatischer Wiedergabe" im Abschnitt "Shell-Entwicklerhandbuch". Der folgende Datensatz registriert den im Feld "Name" angegebenen Handler, wenn die ProductComponent-Komponente installiert ist. Der Wert -1 im Stammfeld ist erforderlich, um dem Windows Installer anzugeben, dass die Registrierung an einen Speicherort umgeleitet werden soll, der vom Installationskontext abhängt.

Registrierung Tabelle

Registrierung Root Schlüssel Name Wert Komponente
MyAutoplayCancelRegistration -1 SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\CancelAutoplay\CLSID 66A32FE6-229D-427b-A608-D273F40C0C ProductComponent

 

Vorschau-Handlerregistrierung

Die PUASample.msi führt Registrierungen aus, die zum Installieren eines Vorschauhandlers erforderlich sind, der eine schreibgeschützte Vorschau von PUA-Dateien ermöglicht, ohne die Anwendung zu starten. Informationen zum Registrieren von Vorschauhandlern finden Sie im Thema " Registrieren von Vorschauhandlern " im Abschnitt zur Erweiterung der Shell-Erweiterung des Shell-Entwicklerhandbuchs. Die folgenden Datensätze in der Registrierungstabelle registrieren den Handler, wenn die ProductComponent-Komponente installiert ist. Der Wert -1 im Stammfeld ist erforderlich, um dem Windows Installer anzugeben, dass die Registrierung an einen Speicherort umgeleitet werden soll, der vom Installationskontext abhängt.

Registrierung Tabelle

Registrierung Root Schlüssel Name Wert Komponente
MyPreviewHandlerRegistration1 -1 Software\Klassen\.pua puafile ProductComponent
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 Beispiel 1 Vorschauhandler für Applicaton 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} Symbol notepad.exe,2 ProductComponent
MyPreviewHandlerRegistration8 -1 Software\Classes\CLSID\{1531d583-8375-4d3f-b5fb-d23bbd169f22}\InProcServer32 ThreadingModel Wohnung 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