Training
Lernpfad
Finanz‑ und Betriebs-Apps implementieren - Training
Planen und entwerfen Sie Ihre Projektmethodik, um Finanz‑ und Betriebs-Apps mit FastTrack-Diensten, Datenverwaltung und mehr erfolgreich zu implementieren.
Dieser Browser wird nicht mehr unterstützt.
Führen Sie ein Upgrade auf Microsoft Edge durch, um die neuesten Features, Sicherheitsupdates und den technischen Support zu nutzen.
Anwendungsbenutzermodell-IDs (AppUserModelIDs) werden von der Taskleiste in Windows 7 und höheren Systemen häufig verwendet, um Prozesse, Dateien und Fenster einer bestimmten Anwendung zuzuordnen. In einigen Fällen reicht es aus, sich auf die interne AppUserModelID zu verlassen, die einem Prozess vom System zugewiesen wurde. Eine Anwendung, die mehrere Prozesse besitzt, oder eine Anwendung, die in einem Hostprozess ausgeführt wird, muss sich jedoch möglicherweise explizit identifizieren, damit sie ihre ansonsten unterschiedlichen Fenster unter einer einzigen Taskleistenschaltfläche gruppieren und den Inhalt der Sprungliste dieser Anwendung steuern kann.
Einige Anwendungen deklarieren keine explizite AppUserModelID. Sie sind optional. In diesem Fall verwendet das System eine Reihe von Heuristiken, um eine interne AppUserModelID zuzuweisen. Es gibt jedoch einen Leistungsvorteil, diese Berechnungen zu vermeiden, und eine explizite AppUserModelID ist die einzige Möglichkeit, eine genaue Benutzererfahrung zu gewährleisten. Daher wird dringend empfohlen, eine explizite ID festzulegen. Anwendungen können keine systemseitig zugewiesene AppUserModelID abrufen.
Wenn eine Anwendung eine explizite AppUserModelID verwendet, muss sie auch allen ausgeführten Fenstern oder Prozessen, Verknüpfungen und Dateizuordnungen dieselbe AppUserModelID zuweisen. Außerdem muss diese AppUserModelID beim Anpassen der Sprungliste über ICustomDestinationList und bei allen Aufrufen von SHAddToRecentDocs verwendet werden.
Hinweis
Wenn Anwendungen nicht über eine explizite AppUserModelID verfügen, müssen sie die Methoden IApplicationDestinations, IApplicationDocumentLists und ICustomDestinationList sowie SHAddToRecentDocs innerhalb der Anwendung aufrufen. Wenn diese Methoden von einem anderen Prozess wie einem Installationsprogramm oder Deinstallationsprogramm aufgerufen werden, kann das System nicht die richtige AppUserModelID generieren, und diese Aufrufe haben keine Auswirkungen.
In den folgenden Elementen werden allgemeine Szenarien beschrieben, die eine explizite AppUserModelID erfordern. Sie weisen auch auf Fälle hin, in denen mehrere explizite AppUserModelIDs verwendet werden sollten.
Eine einzelne ausführbare Datei mit einer Benutzeroberfläche mit mehreren Modi, die dem Benutzer als separate Anwendungen angezeigt werden, sollte jedem Modus unterschiedliche AppUserModelIDs zuweisen. Für instance sollte ein Teil einer Anwendung, den Benutzer als unabhängige Benutzeroberfläche sehen, an die sie die Taskleiste anheften und separat vom Rest der Anwendung starten können, über eine eigene AppUserModelID verfügen, die von der Standard-Benutzeroberfläche getrennt ist.
Mehrere Tastenkombinationen mit unterschiedlichen Argumenten, die alle zu dem führen, was der Benutzer als die gleiche Anwendung betrachtet, sollten eine AppUserModelID für alle Tastenkombinationen verwenden. Windows Internet Explorer verfügt beispielsweise über verschiedene Tastenkombinationen für verschiedene Modi (z. B. das Starten ohne Add-Ons), aber sie sollten dem Benutzer alle als ein einzelnes Internet-Explorer instance erscheinen.
Eine ausführbare Datei, die als Hostprozess fungiert und Zielinhalte als Anwendung ausführt, muss sich als Hostanwendung registrieren. Danach kann sie jeder wahrgenommenen Erfahrung, die sie hostet, unterschiedliche AppUserModelIDs zuweisen. Alternativ kann der Hostprozess dem gehosteten Programm erlauben, seine AppUserModelIDs festzulegen. In beiden Fällen muss der Hostprozess einen Datensatz der Quelle der AppUserModelIDs speichern, entweder sich selbst oder die gehostete Anwendung. In diesem Fall gibt es keine primäre Benutzeroberfläche des Hostprozesses ohne den Zielinhalt. Beispiele hierfür sind RAIL-Anwendungen (Windows Remote Applications Integrated Lokal), java Runtime, RunDLL32.exe oder DLLHost.exe.
Bei vorhandenen gehosteten Anwendungen versucht das System, einzelne Erfahrungen zu identifizieren, aber neue Anwendungen sollten explizite AppUserModelIDs verwenden, um die beabsichtigte Benutzererfahrung zu gewährleisten.
Für kooperative oder verkettete Prozesse, die für den Benutzer Teil derselben Anwendung sind, sollte die gleiche AppUserModelID auf jeden Prozess angewendet werden. Beispiele hierfür sind Spiele mit einem Startprogrammprozess (verkettet) und Microsoft Windows Medienwiedergabe, die über eine Erstausführungs-/Einrichtungserfahrung in einem Prozess und die Standard Anwendung in einem anderen Prozess (kooperativ) verfügen.
Eine Shell-Namespaceerweiterung, die als separate Anwendung fungiert, um mehr als nur das Durchsuchen und Verwalten von Inhalten in Windows Explorer sollte eine AppUserModelID in ihren Ordnereigenschaften zuweisen. Ein Beispiel hierfür ist die Systemsteuerung.
In einer Virtualisierungsumgebung, z. B. einem Bereitstellungsframework, sollte die Virtualisierungsumgebung jeder von ihr verwalteten Anwendung unterschiedliche AppUserModelIDs zuweisen. In diesen Fällen verwendet ein Anwendungsstartprogramm einen zwischengeschalteten Prozess zum Einrichten der Umgebung und übergibt den Vorgang dann an einen anderen Prozess, um die Anwendung auszuführen. Beachten Sie, dass das System dadurch nicht in der Lage ist, den ausgeführten Zielprozess wieder mit der Verknüpfung zu verknüpfen, da die Verknüpfung auf den zwischengeschalteten Prozess verweist.
Wenn eine Anwendung über mehrere Fenster, Tastenkombinationen oder Prozesse verfügt, sollte die appUserModelID dieser Anwendung auch von der Virtualisierungsumgebung auf jeden dieser Teile angewendet werden.
Ein Beispiel für diese Situation ist das ClickOnce-Framework, das AppUserModelIDs im Namen der von ihm verwalteten Anwendungen ordnungsgemäß zuweist. Wie in allen solchen Umgebungen sollten anwendungen, die von ClickOnce bereitgestellt und verwaltet werden, selbst keine expliziten AppUserModelIDs zuweisen, da dies zu einem Konflikt mit den von ClickOnce zugewiesenen AppUserModelIDs führt und zu unerwarteten Ergebnissen führt.
Eine Anwendung muss ihre AppUserModelID im folgenden Format angeben. Sie darf nicht mehr als 128 Zeichen enthalten und darf keine Leerzeichen enthalten. Jeder Abschnitt sollte pascal-cased sein.
CompanyName.ProductName.SubProduct.VersionInformation
CompanyName
und ProductName
sollten immer verwendet werden, während die SubProduct
Teile und VersionInformation
optional sind und von den Anforderungen der Anwendung abhängen.
SubProduct
ermöglicht eine Standard Anwendung, die aus mehreren Unteranwendungen besteht, eine separate Taskleistenschaltfläche für jede Unteranwendung und die zugehörigen Fenster bereitzustellen.
VersionInformation
ermöglicht die Koexistenz zweier Versionen einer Anwendung, während sie als diskrete Entitäten betrachtet werden. Wenn eine Anwendung nicht auf diese Weise verwendet werden soll, sollte weggelassen VersionInformation
werden, damit eine aktualisierte Version dieselbe AppUserModelID wie die ersetzte Version verwenden kann.
Wenn eine Anwendung eine oder mehrere explizite AppUserModelIDs verwendet, sollte sie diese AppUserModelIDs an den folgenden Speicherorten und Situationen anwenden:
In der System.AppUserModel.ID -Eigenschaft der Verknüpfungsdatei der Anwendung. Eine Verknüpfung (als IShellLink, CLSID_ShellLink oder eine LNK-Datei) unterstützt Eigenschaften über IPropertyStore und andere Eigenschafteneinstellungsmechanismen, die in der shell verwendet werden. Dadurch kann die Taskleiste die richtige Verknüpfung zum Anheften identifizieren und sicherstellen, dass fenster, die zum Prozess gehören, dieser Taskleistenschaltfläche entsprechend zugeordnet sind.
Hinweis
Die System.AppUserModel.ID-Eigenschaft sollte auf eine Verknüpfung angewendet werden, wenn diese Verknüpfung erstellt wird. Wenn Sie microsoft Windows Installer (MSI) zum Installieren der Anwendung verwenden, ermöglicht die MsiShortcutProperty-Tabelle , dass die AppUserModelID auf die Verknüpfung angewendet wird, wenn sie während der Installation erstellt wird.
Als Eigenschaft eines der ausgeführten Fenster der Anwendung. Dies kann auf zwei Arten festgelegt werden:
Eine AppUserModelID auf Fensterebene überschreibt eine AppUserModelID auf Prozessebene.
Wenn eine Anwendung eine explizite AppUserModelID auf Fensterebene festlegt, kann die Anwendung die Besonderheiten ihres Neustartbefehls für die Taskleistenschaltfläche angeben. Um diese Informationen anzugeben, werden die folgenden Eigenschaften verwendet:
Hinweis
Wenn eine Verknüpfung zum Starten der Anwendung vorhanden ist, sollte eine Anwendung die AppUserModelID als Eigenschaft der Verknüpfung anwenden, anstatt die Eigenschaften des Neustarts zu verwenden. In diesem Fall werden die Befehlszeile, das Symbol und der Text der Verknüpfung verwendet, um die gleichen Informationen wie die Eigenschaften des Neustarts anzugeben.
Eine explizite AppUserModelID auf Fensterebene kann auch die System.AppUserModel.PreventPinning-Eigenschaft verwenden, um anzugeben, dass sie nicht zum Anheften oder Neustarten verfügbar sein soll.
In einem Aufruf zum Anpassen oder Aktualisieren (ICustomDestinationList), Abrufen (IApplicationDocumentLists) oder Löschen (IApplicationDestinations) der Sprungliste der Anwendung.
In der Dateizuordnungsregistrierung (über die ProgID), wenn die Anwendung die automatisch vom System generierten Ziellisten Zuletzt oderHäufig verwendet. Auf diese Zuordnungsinformationen wird von SHAddToRecentDocs verwiesen. Diese Informationen werden auch beim Hinzufügen von IShellItem-Zielen zu benutzerdefinierten Sprunglisten über ICustomDestinationList::AppendCategory verwendet.
Bei jedem Aufruf führt die Anwendung direkt an SHAddToRecentDocs aus. Wenn die Anwendung auf das allgemeine Dateidialogfeld angewiesen ist, um im Namen von SHAddToRecentDocs aufruft , können diese Aufrufe die explizite AppUserModelID nur dann ableiten, wenn die AppUserModelID für den gesamten Prozess festgelegt ist. Wenn die Anwendung AppUserModelIDs in ihren Fenstern und nicht im Prozess festlegt, muss die Anwendung alle Aufrufe von SHAddToRecentDocs selbst mit der expliziten AppUserModelID durchführen und verhindern, dass das allgemeine Dateidialogfeld eigene Aufrufe durchführt. Dies muss jedes Mal erfolgen, wenn ein Element geöffnet wird, um sicherzustellen, dass die Abschnitte Zuletzt verwendet oder Häufig der Sprungliste der Anwendung korrekt sind.
In den folgenden Elementen werden häufige Szenarien beschrieben und beschrieben, wo in diesen Szenarien explizite AppUserModelIDs angewendet werden.
Eine Anwendung kann den Registrierungseintrag IsHostApp so festlegen, dass der Prozess dieser ausführbaren Datei von der Taskleiste als Hostprozess betrachtet wird. Dies wirkt sich auf die Gruppierung und die Standardmäßigen Sprunglisteneinträge aus.
Das folgende Beispiel zeigt den erforderlichen Registrierungseintrag. Beachten Sie, dass dem Eintrag kein Wert zugewiesen wird. sein Vorhandensein ist nur erforderlich. Es handelt sich um einen REG_NULL Wert.
HKEY_CLASSES_ROOT
Applications
example.exe
IsHostApp
Wenn entweder der Prozess selbst oder die Zum Starten des Prozesses verwendete Verknüpfungsdatei eine explizite AppUserModelID aufweist, wird die Hostprozessliste ignoriert, und die Anwendung wird von der Taskleiste als normale Anwendung behandelt. Die ausgeführten Fenster der Anwendung werden unter einer einzelnen Taskleistenschaltfläche gruppiert, und die Anwendung kann an die Taskleiste angeheftet werden.
Wenn nur der ausführbare Name des ausgeführten Prozesses ohne explizite AppUserModelID bekannt ist und sich diese ausführbare Datei in der Hostprozessliste befindet, wird jede instance des Prozesses als separate Entität für die Taskleistengruppierung behandelt. Die Taskleistenschaltfläche, die einem bestimmten instance des Prozesses zugeordnet ist, zeigt keine An-/Ausheftungsoption oder ein Startsymbol für eine neue instance des Prozesses an. Der Prozess kann auch nicht in die MFU-Liste (Most Frequently Used) des Startmenüs aufgenommen werden. Wenn der Prozess jedoch über eine Verknüpfung gestartet wurde, die Startargumente enthält (in der Regel der Zielinhalt, der als "Anwendung" gehostet werden soll), kann das System die Identität bestimmen, und die Anwendung kann angeheftet und neu gestartet werden.
Anwendungen, Prozesse und Fenster können entscheiden, ob sie sich für das Anheften an die Taskleiste oder für die Aufnahme in die MFU-Liste des Startmenüs nicht verfügbar machen. Hierfür gibt es drei Mechanismen:
Fügen Sie der Registrierung der Anwendung den Eintrag NoStartPage hinzu, wie hier gezeigt:
HKEY_CLASSES_ROOT
Applications
Example.exe
NoStartPage
Die dem NoStartPage-Eintrag zugeordneten Daten werden ignoriert. Es ist nur das Vorhandensein des Eintrags erforderlich. Daher ist der ideale Typ für NoStartPage REG_NONE.
Beachten Sie, dass jede Verwendung einer expliziten AppUserModelID den NoStartPage-Eintrag außer Kraft setzt. Wenn eine explizite AppUserModelID auf eine Verknüpfung, einen Prozess oder ein Fenster angewendet wird, kann sie angeheftet werden und ist für die MFU-Liste startmenüs geeignet.
Legen Sie die System.AppUserModel.PreventPinning-Eigenschaft für Fenster und Verknüpfungen fest. Diese Eigenschaft muss in einem Fenster vor der PKEY_AppUserModel_ID-Eigenschaft festgelegt werden.
Fügen Sie eine explizite AppUserModelID als Wert unter dem folgenden Registrierungsunterschlüssel hinzu, wie hier gezeigt:
HKEY_LOCAL_MACHINE
Software
Microsoft
Windows
CurrentVersion
Explorer
FileAssociation
NoStartPageAppUserModelIDs
AppUserModelID1
AppUserModelID2
AppUserModelID3
Jeder Eintrag ist ein REG_NULL Wert mit dem Namen der AppUserModelID. Jede AppUserModelID in dieser Liste kann nicht angeheftet werden und kann nicht in die MFU-Liste des Startmenüs aufgenommen werden.
Beachten Sie, dass bestimmte ausführbare Dateien sowie Verknüpfungen, die bestimmte Zeichenfolgen in ihrem Namen enthalten, automatisch von der Anheftung und Aufnahme in die MFU-Liste ausgeschlossen werden.
Hinweis
Dieser automatische Ausschluss kann überschrieben werden, indem eine explizite AppUserModelID angewendet wird.
Wenn eine der folgenden Zeichenfolgen, unabhängig von der Groß-/Kleinschreibung, im Tastenkombinationsnamen enthalten ist, ist das Programm nicht anheftbar und wird nicht in der Am häufigsten verwendeten Liste angezeigt (gilt nicht für Windows 10):
Die folgende Liste von Programmen ist nicht anheftbar und wird von der am häufigsten verwendeten Liste ausgeschlossen.
Die vorherigen Listen werden in den folgenden Registrierungswerten gespeichert.
Hinweis
Diese Listen sollten nicht von Anwendungen geändert werden. Verwenden Sie eine der zuvor aufgeführten Ausschlusslistenmethoden für dieselbe Benutzeroberfläche.
HKEY_LOCAL_MACHINE
Software
Microsoft
Windows
CurrentVersion
Explorer
FileAssociation
AddRemoveApps
HostApps
Training
Lernpfad
Finanz‑ und Betriebs-Apps implementieren - Training
Planen und entwerfen Sie Ihre Projektmethodik, um Finanz‑ und Betriebs-Apps mit FastTrack-Diensten, Datenverwaltung und mehr erfolgreich zu implementieren.