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 |