Beispiel für die Erstellung eines einzelnen Pakets

Das PUASample.msi-Beispiel ist ein Beispiel für ein Windows Installer 5.0-Paket mit zwei Zwecken, das entweder im Installationskontext pro Benutzer oder pro Computer auf Windows Server 2008 R2 und Windows 7 installiert werden kann. Dieses Beispielpaket folgt den Unter Erstellen eines einzelnen Pakets beschriebenen Entwicklungsrichtlinien.

Abrufen einer Kopie des Beispiels

Eine Kopie dieses Beispiels und 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.

Systemanforderungen

Der Datenbank-Editor Orca.exeerfordert Windows Server 2008 R2 und früher sowie Windows 7 und früher. Das Dual-Purpose-Paket PUASample1.msi kann entweder im Installationskontext pro Computer oder pro Benutzer auf Windows Server 2008 R2 und Windows 7 installiert werden. PUASample1.msi kann nur im computerspezifischen Kontext 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 des PUASample1.msi zu überprüfen, 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

Dual-Purpose-Pakete sollten den Wert der MSIINSTALLPERUSER-Eigenschaft auf 1 initialisieren. Dadurch wird identifiziert, dass das Paket entweder im Computer- oder benutzerspezifischen Kontext auf Windows Server 2008 R2 und Windows 7 installiert werden kann. Legen Sie die MSIINSTALLPERUSER-Eigenschaft im Paket nur fest, wenn sie den unter Erstellen eines einzelnen Pakets beschriebenen Entwicklungsrichtlinien entspricht und Sie Benutzern die Option zum Installieren des Pakets im Kontext pro Benutzer oder pro Computer bereitstellen möchten. Ein Dual-Purpose-Paket sollte auch den Wert der ALLUSERS-Eigenschaft auf 2 initialisieren. Hiermit wird pro Benutzer als Standardinstallationskontext für die Anwendung angegeben. Wenn der Wert der ALLUSERS-Eigenschaft ein anderer Wert als 2 ist, ignoriert Windows Installer die MSIINSTALLPERUSER-Eigenschaft.

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

Eigenschaft Tabelle (partiell)

Eigenschaft Wert
ALLUSERS 2
MSIINSTALLPERUSER 1

Benutzerdefiniertes Dialogfeld für Den 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 computerspezifische Installation zur Installationszeit auswählen können. Die Tabelle Dialog enthält einen Datensatz, der das Dialogfeld VerifyReadyDialog beschreibt. Der im Feld Attribute eingegebene Wert ist 39, da in diesem Dialogfeld die Dialogfeldbits msidbDialogAttributesVisible (1), msidbDialogAttributesModal (2), msidbDialogAttributesMinimize (4) und msidbDialogAttributesTrackDiskSpace (32) verwendet werden. Die Titelleiste des Dialogfelds zeigt einen Titel an, der durch den Wert der ProductName-Eigenschaft angegeben wird.

Dialogfeld Tabelle (partiell)

Dialog HCentering VCentering Breite Höhe Attribute Titel Control _ First _Standardsteuersteuersystem Abbrechen _ des Steuerelements
VerifyReadyDialog 50 50 480 280 39 [ProductName] InstallPerUser Nächste Abbrechen

Die Tabelle Control enthält Einträge für die Steuerelemente, 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 Symbol für die Rechteerweiterung der Benutzerkontensteuerung (User Account Control, UAC) hinzu und informiert den Benutzer darüber, dass UAC-Anmeldeinformationen erforderlich sind, um die Anwendung im Kontext pro Computer zu installieren. Der Wert im Textfeld der Control-Tabelle ist der Textstil und text, der vom -Steuerelement angezeigt wird. Weitere Informationen zum Hinzufügen von Text zu einem Steuerelement mithilfe vordefinierter Stile finden Sie in der Beschreibung des Felds Text im Thema Steuertabelle.

Steuerelement Tabelle (partiell)

Dialog_ Control type attribute Text Weiter _ steuern
VerifyReadyDialog Abbrechen Pushbutton 3 { \ Tahoma10}&Abbrechen Nächste
VerifyReadyDialog Vorherige Pushbutton 3 { \ Tahoma10}<<&Zurück Abbrechen
VerifyReadyDialog Nächste Pushbutton 3 { \ Tahoma10}&Next >> InstallPerUser
VerifyReadyDialog Text2 Text 3 Sind Sie bereit, die angehaltene Installation abzuschließen?
VerifyReadyDialog InstallPerUser Pushbutton 3 { \ Tahoma10}Nur für benutzer &installieren InstallPerMachine
VerifyReadyDialog InstallPerMachine Pushbutton 8388611 { \ Tahoma10}Install for &Everyone Vorherige
VerifyReadyDialog Abbrechen Pushbutton 3 { \ Tahoma10}&Abbrechen Nächste

Die ControlEvent-Tabelle gibt die ControlEvents-oder -Aktionen an, die das Installationsprogramm ausführt, wenn der Benutzer mit einem -Steuerelement interagiert. Wenn ein Benutzer den 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 den 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 (partiell)

Dialog_ Steuerelement_ Ereignis Argument Bedingung Auftrag
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 von der Benutzeroberfläche jeder Installation entfernt werden, die eine Windows Installer-Version vor Windows Installer Windows Installer 5.0 verwendet. Die ControlCondition-Tabelle 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 werden 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 Feld Bedingung true ist.

ControlCondition Tabelle (partiell)

Dialog_ Steuerelement_ Aktion Bedingung
VerifyReadyDialog InstallPerUser Aktivieren VersionMsi >= "5.00"
VerifyReadyDialog InstallPerUser Disable 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 des PUASample1.msi. Der Datensatz der Verzeichnistabelle mit einer leeren Zeichenfolge im Feld Übergeordnetes Verzeichnis stellt das Stammverzeichnis der Quell- und _ Zielverzeichnisstruktur dar. Wenn die TARGETDIR-Eigenschaft nicht definiert ist, legt das Installationsprogramm seinen 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 Paket Windows Installer enthält (.msi Datei). Die Verzeichnisnamen werden im kurzen langen | Format angegeben.

Verzeichnis Tabelle (partiell)

Verzeichnis Übergeordnetes Verzeichnis _ DefaultDir
Targetdir SourceDir
ProgramFilesFolder Targetdir .
ProgramMenuFolder Targetdir .
INSTALLLOCATION MyVendor Beispiel1 | MSDN-PUASample1
MyVendor ProgramFilesFolder Msft | Microsoft

An der Quelle wird diese Directory-Tabelle in die folgenden Verzeichnispfade auflösen.

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

Am Ziel wird die Directory-Tabelle in die Pfade in der folgenden Tabelle aufzulösen. Das Installationsprogramm legt die Werte der Eigenschaften ProgramFilesFolder und ProgramMenuFolder auf Speicherorte fest, die vom Installationskontext abhängen 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 \ Programs \ Msft \ Sample1
%APPDATA% \ Microsoft \ Windows \ \ Startmenüprogramme

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

%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 befindet sich dieser Ordner unter folgendem Pfad.

%APPDATA% \ Microsoft \ Windows \ \ Startmenüprogramme

Wenn Sie 32-Bit-Windows Installer Package-Komponenten installieren, verwenden Sie die Eigenschaften ProgramFilesFolder und CommonFilesFolder in der Directory-Tabelle. 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 mit demselben Namen enthält, stellen Sie sicher, dass diese Versionen in verschiedenen Verzeichnissen gespeichert werden, oder geben Sie ihnen unterschiedliche Namen.

Die folgende Verzeichnistabelle enthält 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 anwendungsübergreifend freigegeben sind.

Verzeichnis Übergeordnetes Verzeichnis _ 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 Vendorx64 Beispiel1 | MSDN-PUASample1
SHAREDLOCATION ShVendor Beispiel1 | MSDN-PUASample1
SHAREDLOCATIONX64 ShVendorx64 Beispiel1 | 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– nicht genehmigte 32-Bit-Komponenten
App64 Binx64 |MyApp– nicht genehmigte 64-Bit-Komponenten
Share32 Shrx86 Freigegebene | freigegebene 32-Bit-Komponenten
Share64 Shrx64 Freigegebene | freigegebene 64-Bit-Komponenten

An 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

Am Ziel 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% \ Programs \ Common \ Msft \ Sample1 \ x32 \ shared
%LOCALAPPDATA% \ Programs \ Msft \ Sample1 \ x64 \ myapp
%LOCALAPPDATA% \ Programs \ Common \ Msft \ Sample1 \ x64 \ shared
%APPDATA% \ Microsoft \ Windows \ \ Startmenüprogramme \ Beispiel1

Anwendungsregistrierung

Der PUASample.msi fügt dem Registrierungsschlüssel app paths für die Anwendung einen Unterschlüssel hinzu und führt Registrierungen aus, die es ermöglichen, Anwendungsinformationen in der Registrierung unter diesem Schlüssel zu speichern. Weitere Informationen zu App-Pfaden und zur Anwendungsregistrierung finden Sie im Abschnitt "PerceivedTypes", "SystemFileAssociations" und "Anwendungsregistrierung" im Abschnitt "Erweiterbarkeit der Shell" des Shell-Entwicklerhandbuchs. Zur Installationszeit trifft der Benutzer die Entscheidung, die Anwendung entweder im Installationskontext pro Benutzer oder pro Computer zu installieren. Zum Zeitpunkt der Erstellung des Dual-Purpose-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 (partiell)

Datei Komponente_ 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 dateibezeichner, der im Feld Datei der Dateitabelle definiert ist, und die [ # Dateischlüsselkonvention ] des Formatierten Typs, um den Standardwert für den Registrierungsschlüssel "App Paths" anzugeben. Die INSTALL-Aktion der obersten Ebene führt die Aktionen in der Tabelle InstallExecuteSequence aus. Nachdem die Aktionen CostInitialize, FileCostund InstallFinalize in dieser Tabelle abgeschlossen sind, ersetzt der Windows Installer die formatierte Teilzeichenfolge [ # MyAppFile ] in der Registrierungstabelle durch den vollständigen Pfad zur Anwendungsdatei.

Im Beispiel wird die benutzerdefinierte Eigenschaft RegRoot definiert, die den Speicherort des Stammschlüssels enthalten soll, und es wird eine benutzerdefinierte Aktion verwendet, um den Eigenschaftswert zurückzusetzen, wenn der Benutzer eine computerspezifische Installation ausgibt. Verwenden Sie die benutzerdefinierte Eigenschaft RegRoot in allen formatierten Zeichenfolgenwerten, die auf den Stammspeicherort verweisen. In der Tabelle Property 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 Benutzerinstallationskontext initialisiert, den empfohlenen Standardkontext für Dual-Purpose-Pakete.

Eigenschaft Tabelle (partiell)

Eigenschaft Wert
RegRoot HKCU

In der Tabelle CustomAction definiert das Paket eine benutzerdefinierte Aktion namens _ Set RegRoot _ HKLM. Der Wert im Feld Typ identifiziert dies als benutzerdefinierte Standardaktion vom Typ 51 der benutzerdefinierten Aktion . Die Bedeutung der Felder Source und Target in der CustomAction-Tabelle hängt vom benutzerdefinierten Aktionstyp ab. Weitere Informationen zu den Standardtypen benutzerdefinierter Aktionen finden Sie unter Benutzerdefinierte Aktionstypen. Das Feld Quelle für die _ benutzerdefinierte Aktion RegRoot HKLM festlegen _ gibt an, dass der Wert der RegRoot-Eigenschaft ist. Wenn das Installationsprogramm die _ benutzerdefinierte Aktion RegRoot HKLM festlegen _ ausführt, wird der Wert der RegRoot-Eigenschaft auf HKLM zurückgesetzt.

CustomAction Tabelle (partiell)

Aktion type Source Ziel
Festlegen _ von RegRoot _ HKLM 51 [RegRoot] HKLM

Die INSTALL-Aktion der obersten Ebene führt die Aktionen in der Tabelle InstallExecuteSequence in der Sequenz aus, die im Feld Sequenz dieser Tabelle angegeben ist. Der wert, der im Feld Sequenz für die benutzerdefinierte Aktion RegRoot HKLM festlegen (1501) erstellt wurde, gibt an, dass diese benutzerdefinierte Aktion nach der _ _ InstallInitialize-Aktion (1500) und vor der ProcessComponents-Aktion (1600) ausgeführt werden soll. Diese Sequenz stellt sicher, dass der Datensatz für die _ benutzerdefinierte Aktion RegRoot HKLM festlegen _ zum Zeitpunkt der Installation ausgewertet wird. Weitere Informationen zur empfohlenen Aktionssequenz in der Tabelle InstallExecuteSequence finden Sie im Thema Suggested InstallExecuteSequence . Die Syntax der bedingten Anweisung, die im Feld Bedingung erstellt wurde, gibt an, dass die Aktion RegRoot HKLM festlegen nur ausgeführt wird, wenn der Wert der ALLUSERS-Eigenschaft zur Installationszeit _ _ 1 beträgt. Der ALLUSERS-Eigenschaftswert 1 gibt eine Computerinstallation an.

InstallExecuteSequence Tabelle (partiell)

Aktion Bedingung Sequenz
_RegRoot _ HKLM festlegen ALLUSERS=1 1501

Die folgenden Datensätze in der Tabelle Registrierung führen die Registrierungen aus, wenn die ProductComponent-Komponente installiert ist. Der Wert -1 im Feld Root ist erforderlich, um die Registrierung unter HKEY LOCAL MACHINE für eine benutzerspezifische Installation und unter HKEY CURRENT USER für eine Installation pro Benutzer _ _ _ _ durchzuführen. Der Datensatz mit einer leeren Zeichenfolge im Feld Registrierung fügt einen Unterschlüssel für die Anwendung unter dem Registrierungsschlüssel AppPaths 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 den Alias "puapct" an einer Eingabeaufforderung eintippst. Die Registrierung MyAppPathRegistration 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-Pfade \PUAPCT.exe ProductComponent
MyAppPathAlias –1 Software \ Microsoft \ Windows \ \ CurrentVersion-App-Pfade \PUAPCT.exe [#MyAppFile] ProductComponent
MyAppPathRegistration –1 Software \ Microsoft \ Windows \ \ CurrentVersion-App-Pfade \PUASample1.exe [#MyAppFile] ProductComponent

Automatische Wiedergabe – Registrierung abbrechen

Der PUASample.msi führt Registrierungen durch, die es dem Anwendungsbenutzer ermöglichen, zu verhindern, dass die automatische Hardwarewiedergabe für ausgewählte Geräte gestartet wird. Informationen zum Registrieren eines Handlers zum Abbrechen der automatischen Wiedergabe als Reaktion auf ein Ereignis finden Sie im Thema Preparing Hardware and Software for Use with AutoPlay (Vorbereiten von Hardware und Software für die Verwendung mit AutoPlay) im Abschnitt erweiterbare Shell des Shell-Entwicklerhandbuchs. Der folgende Datensatz registriert den handler, der im Feld Name angegeben wird, wenn die ProductComponent-Komponente installiert wird. Der Wert -1 im Feld Root 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-D273F40C034C ProductComponent

Registrierung des Vorschauhandlers

Der PUASample.msi führt Registrierungen durch, 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 erweiterbare Shell des Shell-Entwicklerhandbuchs. Die folgenden Datensätze in der Registry-Tabelle registrieren den Handler, wenn die ProductComponent-Komponente installiert wird. Der Wert -1 im Feld Root 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 Softwareklassen \ \ .pua puafile ProductComponent
MyPreviewHandlerRegistration2 –1 Software \ Microsoft \ Windows \ CurrentVersion \ PreviewHandlers {1531d583-8375-4d3f-b5fb-d23bbd169f22} Microsoft Windows PUA TEST Preview Handler ProductComponent
MyPreviewHandlerRegistration3 –1 Softwareklassen \ \ puafile \ ShellEx \ {8895b1c6-b41f-4c1c-a562-0d564250836f} {1531d583-8375-4d3f-b5fb-d23bbd169f22} ProductComponent
MyPreviewHandlerRegistration4 –1 Softwareklassen \ \ CLSID \ {1531d583-8375-4d3f-b5fb-d23bbd169f22} Per-User Applicaton Sample 1 Preview Handler ProductComponent
MyPreviewHandlerRegistration5 –1 Softwareklassen \ \ CLSID \ {1531d583-8375-4d3f-b5fb-d23bbd169f22} AppID {6d2b5079-2f0b-48dd-ab7f-97cec514d30b} ProductComponent
MyPreviewHandlerRegistration6 –1 Softwareklassen \ \ CLSID \ {1531d583-8375-4d3f-b5fb-d23bbd169f22} DisplayName @shell32,-38242 ProductComponent
MyPreviewHandlerRegistration7 –1 Softwareklassen \ \ CLSID \ {1531d583-8375-4d3f-b5fb-d23bbd169f22} Symbol notepad.exe,2 ProductComponent
MyPreviewHandlerRegistration8 –1 Softwareklassen \ \ CLSID \ {1531d583-8375-4d3f-b5fb-d23bbd169f22} \ InProcServer32 ThreadingModel Wohnung ProductComponent
MyPreviewHandlerRegistration9 –1 Softwareklassen \ \ CLSID \ {1531d583-8375-4d3f-b5fb-d23bbd169f22} \ InProcServer32 #%%SystemRoot% \ system32 \shell32.dll ProductComponent
MyPreviewHandlerRegistration10 –1 Softwareklassen \ \ CLSID \ {1531d583-8375-4d3f-b5fb-d23bbd169f22} \ InProcServer32 ProgID puafile ProductComponent