Freigeben über


Beispiel einer Einzelpaketerstellung

Das Beispiel PUASample.msi ist ein Beispiel für ein Windows Installer 5.0-Paket mit doppeltem Zweck, das entweder im benutzer- oder im computerspezifischen Installationskontext unter Windows Server 2008 R2 und Windows 7 installiert werden kann. Dieses Beispielpaket folgt den unter Erstellen einzelner Pakete beschriebenen Richtlinien für die Entwicklung.

Abrufen einer Kopie des Beispiels

Eine Kopie dieses Beispiels und ein Windows Installer-Datenbanktabellen-Editor, Orca.exe, finden Sie in den Windows SDK-Komponenten für Windows Installer-Entwickler. Das Beispiel und der Tabellen-Editor werden mit dem Windows Software Development Kit für Windows Server 2008 R2 und Windows 7 als die Windows Installer-Installationsdateien PUASample1.msi und Orca.msi bereitgestellt.

Systemanforderungen

Der Datenbank-Editor Orca.exe erfordert Windows Server 2008 R2 und Windows 7 sowie die jeweils älteren Versionen. Das PUASample1.msi-Paket mit doppeltem Zweck kann entweder im computer- oder im benutzerspezifischen Installationskontext unter Windows Server 2008 R2 und Windows 7 installiert werden. PUASample1.msi kann nur im computerspezifischen Kontext unter Windows Server 2008 und Windows Vista sowie unter den jeweils älteren Versionen davon installiert werden. Sie können den Datenbank-Editor installieren, um sich den Inhalt von PUASample1.msi anzuschauen, ohne das Beispiel zu installieren. Stellen Sie zum Installieren der Beispiel- oder Editor-Pakete sicher, dass die DisableMSI-Richtlinie nicht auf einen Wert festgelegt ist, der Anwendungsinstallationen blockiert.

Identifizieren eines dualen Pakets

Bei dualen Paketen muss der Wert der MSIINSTALLPERUSER-Eigenschaft auf „1“ initialisiert werden. Dadurch wird festgelegt, dass das Paket unter Windows Server 2008 R2 und Windows 7 entweder im computerspezifischen oder im benutzerspezifischen Kontext installiert werden kann. Legen Sie die MSIINSTALLPERUSER-Eigenschaft im Paket nur fest, wenn sie gemäß den unter Erstellen einzelner Pakete beschriebenen Entwicklungsrichtlinien geschrieben wurde und wenn Sie beabsichtigen, Benutzern die Option zur Installation des Pakets im benutzer- oder im computerspezifischen Kontext bereitzustellen. Bei einem dualen Paket muss außerdem der Wert der ALLUSERS-Eigenschaft auf „2“ initialisiert werden. Dadurch wird der benutzerspezifische Kontext als Standardinstallationskontext für die Anwendung angegeben. Wenn der Wert der ALLUSERS-Eigenschaft nicht auf „2“ festgelegt ist, ignoriert Windows Installer den Wert der MSIINSTALLPERUSER-Eigenschaft.

Verwenden Sie einen Windows Installer-Datenbank-Editor, wie z. B. Orca.exe, um sich den Inhalt von PUASample1.msi anzuschauen. Die Property-Tabelle im Beispielpaket enthält die folgenden beiden Einträge.

Property-Tabelle (Auszug)

Eigenschaft Wert
ALLUSERS 2
MSIINSTALLPERUSER 1

 

Benutzerdefiniertes Dialogfeld für den Installationskontext

Die Benutzeroberfläche des Beispielpakets enthält ein Beispiel eines benutzerdefinierten Dialogfelds, VerifyReadyDialog, mit dem Benutzer bei der Installation den benutzerspezifischen oder den computerspezifischen Installationskontext auswählen können. Die Dialog-Tabelle enthält einen Datensatz, der das Dialogfeld VerifyReadyDialog beschreibt. Der Wert im Feld „Attribute“ lautet „39“, da in diesem Dialogfeld die Dialogformatbits msidbDialogAttributesVisible (1), msidbDialogAttributesModal (2), msidbDialogAttributesMinimize (4) und msidbDialogAttributesTrackDiskSpace (32) verwendet werden. In der Titelleiste des Dialogfelds wird ein Titel angezeigt, der durch den Wert der ProductName-Eigenschaft angegeben wird.

Dialog-Tabelle (Auszug)

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 Control-Tabelle enthält Einträge zu den Steuerelementen, die im Dialogfeld VerifyReadyDialog angezeigt werden. Im Dialogfeld werden PushButton-Steuerelemente und ein Text-Steuerelement angezeigt. Alle Steuerelemente verwenden die Steuerelementattribute msidbControlAttributesEnabled (2) und msidbControlAttributesVisible (1). Das InstallPerMachine-Steuerelement verwendet auch das ElevationShield-Steuerelementattribut msidbControlAttributesElevationShield (8388608). Dieses Steuerelementattribut fügt dem InstallPerMachine-Steuerelement das Rechteerweiterungssymbol (Schildsymbol) der Benutzerkontensteuerung (UAC) hinzu und informiert den Benutzer darüber, dass UAC-Anmeldeinformationen erforderlich sind, um die Anwendung im computerspezifischen Kontext zu installieren. Der Wert im Feld „Text“ der Steuerelement-Tabelle bezieht sich auf den Textstil und den Text, der vom Steuerelement angezeigt wird. Weitere Informationen zum Hinzufügen von Text zu einem Steuerelement mithilfe vordefinierter Formatvorlagen finden Sie in der Beschreibung zum Feld „Text“ im Thema zur „Control“-Tabelle.

Control-Tabelle (Auszug)

Dialog_ Control type attribute Text Control_Next
VerifyReadyDialog Abbrechen PushButton 3 {\Tahoma10}&Cancel Nächste
VerifyReadyDialog Vorherige PushButton 3 {\Tahoma10}<<&Previous Abbrechen
VerifyReadyDialog Nächste PushButton 3 {\Tahoma10}&Next >> InstallPerUser
VerifyReadyDialog Text2 Text 3 Sind Sie bereit, ihre angehaltene Installation abzuschließen?
VerifyReadyDialog InstallPerUser PushButton 3 {\Tahoma10}Install Nur für &Mich InstallPerMachine
VerifyReadyDialog InstallPerMachine PushButton 8388611 {\Tahoma10}Install für &Alle Vorherige
VerifyReadyDialog Abbrechen PushButton 3 {\Tahoma10}&Cancel Nächste

 

In der ControlEvent-Tabelle werden die ControlEvents oder Aktionen angegeben, die das Installationsprogramm ausführt, wenn der Benutzer mit einem Steuerelement interagiert. Wenn ein Benutzer die Schaltfläche InstallPerUser aktiviert, wird auf der Benutzeroberfläche das Dialogfeld OutOfDisk angezeigt, wenn die OutOfDiskSpace-Eigenschaft „1“ lautet, legt den Wert der MSIINSTALLPERUSER-Eigenschaft auf „1“ fest, den Wert der ALLUSERS-Eigenschaft auf „2“ und die MSIFASTINSTALL-Eigenschaft auf „1“ fest und kehrt zurück. Da die MSIFASTINSTALL-Eigenschaft festgelegt ist, wird für die Installation kein Systemwiederherstellungspunkt generiert. Wenn ein Benutzer die Schaltfläche InstallPerMachine aktiviert, wird auf der Benutzeroberfläche das Dialogfeld OutOfDisk angezeigt, wenn die OutOfDiskSpace-Eigenschaft „1“ lautet, legt den Wert der ALLUSERS-Eigenschaft auf „1“ fest und kehrt zurück.

ControlEvent-Tabelle (Auszug)

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 Steuerelement InstallPerUser sollte bei jeder Installation mit einer Windows Installer-Version vor Windows Installer 5.0 von der Benutzeroberfläche entfernt werden. Die ControlCondition-Tabelle im Beispielpaket enthält vier Einträge, mit denen das Steuerelement InstallPerUser deaktiviert und ausgeblendet wird, wenn als Windows Installer-Version eine Version vor Windows Installer 5.0 verwendet wird. In der Tabelle werden der Wert der VersionMsi-Eigenschaft und die Syntax der bedingten Anweisung zum Definieren dieser Bedingung verwendet. Die im Aktionsfeld angegebene Aktion wird nur ausgeführt, wenn die Anweisung im Feld „Condition“ auf „True“ gesetzt ist.

ControlCondition-Tabelle (Auszug)

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"

 

Erstellen der Verzeichnisstruktur

Verwenden Sie den Datenbank-Editor, um die Directory-Tabelle von PUASample1.msi zu untersuchen. Der Datensatz der Directory-Tabelle mit einer leeren Zeichenfolge im Feld Directory_Parent stellt das Stammverzeichnis sowohl der Quell- als auch der Zielverzeichnisstruktur dar. Wenn die TARGETDIR-Eigenschaft nicht definiert ist, legt das Installationsprogramm bei der Installation seinen Wert 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 im short|long-Format angegeben.

Directory-Tabelle (Auszug)

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

 

An der Quelle wird diese Directory-Tabelle in die folgenden Verzeichnispfade aufgelöst.

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

Am Ziel wird die Directory-Tabelle in die in der folgenden Tabelle angegebenen Pfade aufgelöst. Das Installationsprogramm legt die Werte der ProgramFilesFolder- und der ProgramMenuFolder-Eigenschaften auf Speicherorte fest, die vom Installationskontext abhängen und davon, ob das System die 32-Bit-Version oder die 64-Bit-Version von Windows Server 2008 R2 und Windows 7 ist. Die Pfade zu den Zielordnern hängen davon ab, ob der Benutzer eine benutzerspezifische oder eine computerspezifische Installation auswählt.

Installationskontext System Pfadbeispiele
Computerspezifisch Windows 2008 R2 und Windows Server 7
32-Bit-Version
%ProgramFiles%\Msft\Sample1
%ALLUSERSPROFILE%\Microsoft\Windows\Start Menu\Programs
Computerspezifisch Windows 2008 R2 und Windows Server 7
64-Bit-Version
%ProgramFiles(x86)%\Msft\Sample1
%ALLUSERSPROFILE%\Microsoft\Windows\Start Menu\Programs
Benutzerspezifisch Windows 2008 R2 und Windows Server 7
32-Bit- oder 64-Bit-Version
%USERPROFILE%\AppData\Local\Programs\Msft\Sample1
%APPDATA%\Microsoft\Windows\Start Menu\Programs

 

Benutzerspezifische Anwendungen sollten in Unterordnern unter dem Ordner „Programme“ gespeichert werden, die durch den Wert der ProgramFilesFolder-Eigenschaft angegeben werden. In der Regel hat der Pfad zur Anwendung die folgende Form.

%LOCALAPPDATA%\Programs\ISV name\AppName.

Benutzerspezifische Konfigurationsdaten sollten im Ordner „Programme“ gespeichert werden, der durch den Wert der ProgramMenuFolder-Eigenschaft angegeben wird. In der Regel finden Sie diesen Ordner unter folgendem Pfad.

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

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

Die folgende Directory-Tabelle enthält ein Beispiel eines Verzeichnislayouts, das mit einem Paket kompatibel ist, das 32-Bit- und 64-Bit-Komponenten sowie einige Komponenten enthält, die anwendungsübergreifend verwendet werden.

Verzeichnis Directory_Parent DefaultDir
TARGETDIR SourceDir
ProgramFilesFolder TARGETDIR .:Prog32
ProgramFiles64Folder TARGETDIR .:Prog64
CommonFilesFolder TARGETDIR .:Share32
CommonFiles64Folder TARGETDIR .:Share64
ProgramMenuFolder TARGETDIR .:Sample1|MSDN-PUASample1
INSTALLLOCATION MyVendor Sample1|MSDN-PUASample1
INSTALLLOCATIONX64 Vendorx64 Sample1|MSDN-PUASample1
SHAREDLOCATION ShVendor Sample1|MSDN-PUASample1
SHAREDLOCATIONX64 ShVendorx64 Sample1|MSDN-PUASample1
MyVendor ProgramFilesFolder Msft|Microsoft
Vendorx64 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
Share64 Shrx64 shared|shared 64-Bit-Komponenten

 

An der Quelle wird diese Directory-Tabelle 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

Am Ziel wird diese Directory-Tabelle in die folgenden Verzeichnispfade aufgelöst. Die Zielpfade hängen vom Installationskontext und vom System ab.

Installationskontext System Pfadbeispiele
Computerspezifisch 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\Start Menu\Programs\Sample1
Computerspezifisch 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\Start Menu\Programs\Sample1
Benutzerspezifisch Windows 2008 R2 und Windows Server 7
32-Bit- oder 64-Bit-Version
%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

 

Anwendungsregistrierung

Die Datei PUASample.msi fügt dem App Paths-Registrierungsschlüssel 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 Paths und zur Anwendungsregistrierung finden Sie unter PerceivedTypes, SystemFileAssociations und Anwendungsregistrierung im Abschnitt zur Shell-Erweiterbarkeit des Shell-Entwicklerhandbuchs. Bei der Installation trifft der Benutzer die Entscheidung, die Anwendung entweder im benutzerspezifischen oder im computerspezifischen Installationskontext zu installieren. Zum Zeitpunkt der Erstellung des dualen Pakets kann der Paketentwickler nicht wissen, ob die Registrierungen unter dem Schlüssel HKEY_LOCAL_MACHINE oder dem Schlüssel HKEY_CURRENT_USER ausgeführt werden sollen.

Der Paketentwickler definiert den Dateibezeichner für die ausführbare Datei der Anwendung im Feld „Datei“ der File-Tabelle.

File-Tabelle (Auszug)

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 Registry-Tabelle als formatierte Zeichenfolge angegeben werden. Verwenden Sie den im Feld „Datei“ der File-Tabelle definierten Dateibezeichner und die [#filekey]-Konvention des Typs „Formatiert“, um den Standardwert für den Registrierungsschlüssel App Paths anzugeben. Durch die INSTALL-Aktion der obersten Ebene werden die Aktionen in der InstallExecuteSequence-Tabelle ausgeführt. Nachdem die Aktionen CostInitialize, FileCost und InstallFinalize in dieser Tabelle abgeschlossen sind, ersetzt Windows Installer die formatierte Teilzeichenfolge [#MyAppFile] in der Registry-Tabelle durch den vollständigen Pfad zur Anwendungsdatei.

In dem Beispiel wird eine benutzerdefinierte Eigenschaft, RegRoot, definiert, die den Speicherort des Stammschlüssels enthält, und es wird eine benutzerdefinierte Aktion verwendet, um den Eigenschaftswert zurückzusetzen, wenn der Benutzer die computerspezifische Installation auswählt. Verwenden Sie die benutzerdefinierte Eigenschaft RegRoot in allen formatierten Zeichenfolgenwerten, die auf den Stammspeicherort verweisen. In der Property-Tabelle 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 benutzerspezifischen Installationskontext initialisiert, den für duale Pakete empfohlenen Standardkontext.

Property-Tabelle (Auszug)

Eigenschaft Wert
RegRoot HKCU

 

In der CustomAction-Tabelle 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 CustomAction-Tabelle hängt vom benutzerdefinierten Aktionstyp ab. Weitere Informationen zu den Standardtypen benutzerdefinierter Aktionen finden Sie unter Benutzerdefinierte Aktionstypen. Im Feld „Quelle“ für die benutzerdefinierte Aktion Set_RegRoot_HKLM wird der Wert der RegRoot-Eigenschaft angegeben. Führt das Installationsprogramm die benutzerdefinierte Set_RegRoot_HKLM-Aktion aus, wird der Wert der RegRoot-Eigenschaft auf HKLM zurückgesetzt.

CustomAction-Tabelle (Auszug)

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

 

Mit der INSTALL-Aktion auf oberster Ebene werden die Aktionen in der InstallExecuteSequence-Tabelle in der Sequenz ausgeführt, die im Feld „Sequence“ dieser Tabelle angegeben ist. Der Wert, der im Feld „Sequence“ für die benutzerdefinierte Set_RegRoot_HKLM-Aktion (1501) erstellt wurde, gibt an, dass diese benutzerdefinierte Aktion nach der InstallInitialize-Aktion (1500) und vor der ProcessComponents-Aktion (1600) ausgeführt wird. Durch diese Sequenz wird sichergestellt, dass der Datensatz für die benutzerdefinierte Set_RegRoot_HKLM-Aktion bei der Installation ausgewertet wird. Weitere Informationen zur empfohlenen Sequenz der Aktionen in der InstallExecuteSequence-Tabelle finden Sie im Thema Empfohlene InstallExecuteSequence. Die im Feld „Bedingung“ erstellte Syntax für bedingte Anweisungen gibt an, dass die Set_RegRoot_HKLM-Aktion nur ausgeführt wird, wenn der Wert der ALLUSERS-Eigenschaft bei der Installation „1“ lautet. Eine ALLUSERS-Eigenschaft mit dem Wert „1“ gibt eine computerspezifische Installation an.

InstallExecuteSequence-Tabelle (Auszug)

Aktion Bedingung Sequenz
Set_RegRoot_HKLM ALLUSERS=1 1501

 

Die folgenden Datensätze in der Registry-Tabelle führen die Registrierungen durch, wenn die ProductComponent-Komponente installiert ist. Der Wert „-1“ im Feld „Stamm“ ist erforderlich, um die Registrierung unter HKEY_LOCAL_MACHINE für eine computerspezifische Installation und unter HKEY_CURRENT_USER für eine benutzerspezifische Installation durchzuführen. Der Datensatz mit einer leeren Zeichenfolge im Feld „Registrierung“ fügt unter dem AppPaths-Registrierungsschlüssel einen Unterschlüssel für die Anwendung 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 das Starten der Anwendung, wenn der Benutzer bei einer Eingabeaufforderung den Alias „puapct“ 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

 

Automatische Wiedergabe: Registrierung abbrechen

Die PUASample.msi-Datei führt Registrierungen durch, die es dem Anwendungsbenutzer ermöglichen, das Starten der automatischen Hardwarewiedergabe für ausgewählte Geräte zu verhindern. Informationen zum Registrieren eines Handlers zum Abbrechen der automatischen Wiedergabe als Reaktion auf ein Ereignis finden Sie im Thema zum Vorbereiten von Hardware und Software für die Verwendung mit der automatischen Wiedergabe im Abschnitt zur Shell-Erweiterbarkeit des Shell-Entwicklerhandbuchs. Der folgende Datensatz registriert den im Feld „Name“ angegebenen Handler, wenn die ProductComponent-Komponente installiert ist. Der Wert „-1“ im Feld „Stamm“ wird benötigt, um dem Windows Installer anzugeben, dass die Registrierung an einen vom Installationskontext abhängigen Speicherort umgeleitet werden soll.

Registry-Tabelle

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

 

Preview-Handler-Registrierung

Die PUASample.msi-Datei führt Registrierungen durch, die erforderlich sind, um einen Preview-Handler zu installieren, der eine schreibgeschützte Vorschau von PUA-Dateien ermöglicht, ohne dass die Anwendung gestartet wird. Informationen zum Registrieren von Preview-Handlern finden Sie im Thema zum Registrieren von Preview-Handlern im Abschnitt zur Shell-Erweiterung des Shell-Entwicklerhandbuchs. Die folgenden Datensätze in der Registry-Tabelle registrieren den Handler, wenn die ProductComponent-Komponente installiert ist. Der Wert „-1“ im Feld „Stamm“ wird benötigt, um dem Windows Installer anzugeben, dass die Registrierung an einen vom Installationskontext abhängigen Speicherort umgeleitet werden soll.

Registry-Tabelle

Registrierung Root Schlüssel Name Wert Komponente
MyPreviewHandlerRegistration1 -1 Software\Classes\.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 Applicaton Sample 1 Preview Handler 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 Apartment 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