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 |