SHAddToRecentDocs-Funktion (shlobj_core.h)
Benachrichtigt das System, dass auf ein Element zugegriffen wurde, um die zuletzt und am häufigsten verwendeten Elemente zu verfolgen. Diese Funktion kann auch verwendet werden, um alle Nutzungsdaten zu löschen.
Syntax
void SHAddToRecentDocs(
UINT uFlags,
[in, optional] LPCVOID pv
);
Parameter
uFlags
Typ: UINT
Ein Wert aus der SHARD-Enumeration , der die Form der Informationen angibt, auf die der pv-Parameter verweist.
[in, optional] pv
Typ: LPCVOID
Ein Zeiger auf Daten, der das Element identifiziert, auf das zugegriffen wurde. Das Element kann in diesem Parameter in einer der folgenden Formen angegeben werden:
- Eine NULL-beendete Zeichenfolge, die den Pfad und den Dateinamen des Elements enthält.
- Eine PIDL, die das Dateiobjekt des Elements identifiziert.
- Nur Windows 7 und höher. Eine SHARDAPPIDINFO-, SHARDAPPIDINFOIDLIST- oder SHARDAPPIDINFOLINK-Struktur , die das Element über eine AppUserModelID identifiziert. Weitere Informationen finden Sie unter Anwendungsbenutzermodell-IDs (AppUserModelIDs).
- Nur Windows 7 und höher. Ein IShellLink-Objekt , das das Element über eine Verknüpfung identifiziert.
Legen Sie diesen Parameter auf NULL fest, um alle Nutzungsdaten für alle Elemente zu löschen.
Rückgabewert
Keine
Bemerkungen
Die über Aufrufe dieser Methode erfassten Nutzungsstatistiken werden verwendet, um Listen der Elemente zu ermitteln, auf die zuletzt und am häufigsten zugegriffen wird. Diese Listen werden im Startmenü und in Windows 7 und höher in der Sprungliste einer Anwendung angezeigt.
Wenn diese Methode aufgerufen wird, wirkt sie sich auf die folgenden Bereiche aus:
- Updates die Listen Zuletzt verwendet und Häufig für die Sprungliste der zugehörigen Anwendung.
- Fügt dem Ordner Zuletzt verwendet (FOLDERID_Recent, CSIDL_RECENT) eine Verknüpfung hinzu. Dies wird im Menü Start im Menü "Zuletzt verwendete Dokumente (Windows XP)" und "Zuletzt verwendete Elemente" (Windows Vista und höher) angezeigt.
- Fügt dem Untermenü "Dokumente" des klassischen Startmenüs eine Verknüpfung hinzu. (Beachten Sie, dass die Klassische Startmenüoption in Windows 7 und höher nicht verfügbar ist.)
In einigen Fällen, insbesondere wenn ein Benutzer ein Element über Windows Explorer öffnet oder das Allgemeine Dateidialogfeld zum Öffnen, Speichern oder Erstellen einer Datei verwendet, ruft die Shell SHAddToRecentDocs im Namen der Anwendung auf. Eine Anwendung mit einer benutzerdefinierten Benutzeroberfläche zum Auswählen von Elementen sollte SHAddToRecentDocs explizit aufrufen, um genaue Statistiken sicherzustellen. Doppelte Aufrufe werden vom System berücksichtigt, sodass dadurch keine Gefahr besteht, die Daten zu verschleppen.
Ausführbare Dateien (.exe) werden aus der Liste zuletzt verwendeter Dokumente in Windows XP und höheren Versionen gefiltert. Obwohl SHAddToRecentDocs den Pfad einer ausführbaren Datei akzeptiert, wird diese Datei nicht in der Liste Zuletzt verwendete Elemente angezeigt.
Ordner werden auch von SHAddToRecentDocs akzeptiert, werden jedoch nur in der Sprungliste für die Schaltfläche Windows Explorer Taskleiste angezeigt. Ordner werden in der Sprungliste keiner anderen Anwendung angezeigt.
In bestimmten Fällen versucht SHAddToRecentDocs , eine Anwendung zu registrieren, um einen Dateityp zu behandeln, für den er nicht registriert ist. Dies geschieht unter folgenden Umständen:
- Eine Anwendung ruft SHAddToRecentDocs explizit mit einem Dateityp auf, für den sie nicht registriert ist. Dies gilt auch für Aufrufe von SHAddToRecentDocs durch das Dialogfeld "Allgemeine Datei" im Namen der Anwendung, aber nur, wenn das Dialogfeld zum Öffnen einer Datei verwendet wird, nicht, wenn es zum Speichern einer Datei verwendet wird.
- Der Benutzer löscht eine Datei eines Typs, für den die Anwendung nicht registriert ist, auf der Taskleistenschaltfläche der Anwendung.
Eine Reihe von Anforderungen müssen erfüllt sein, damit die Registrierung erfolgreich durchgeführt werden kann:
- Die Anwendung muss unter HKEY_CLASSES_ROOT\Applications registriert sein.
- Diese Registrierung kann den NoOpenWith-Wert nicht enthalten. Weitere Informationen zu NoOpenWith finden Sie unter Dateitypen .
- Diese Registrierung kann keine Daten unter einem SupportedTypes-Unterschlüssel bereitstellen. Weitere Informationen zum Unterschlüssel SupportedTypes finden Sie unter Dateitypen.
-
Die ausführbare Datei der Anwendung kann nicht im KillList-Wert aufgeführt werden, der sich hier befindet:
HKEY_LOCAL_MACHINE Software Microsoft Windows CurrentVersion Explorer FileAssociation KillList
Hinweis Drittanbieteranwendungen sollten den KillList-Wert nicht ändern. Sie sollte als schreibgeschützt betrachtet werden. -
Die HKEY_CLASSES_ROOT\Applications-Registrierung der Anwendung muss über einen Satz von Standardverben verfügen, die unter einer definiert sind.
HKEY_CLASSES_ROOT\Applications\ExampleApp.exe\shell-Unterschlüssel.
Wenn SHAddToRecentDocs die Registrierung als Ergebnis eines Drag-and-Drop-Vorgangs auf die Taskleistenschaltfläche versucht, wird der Shell-Unterschlüssel erstellt, sofern er noch nicht vorhanden ist, solange die vorhandene Anwendungsregistrierung keinen NoOpenWith-Wert enthält und die ausführbare Datei der Anwendung nicht im KillList-Wert aufgeführt ist.
Unterdrücken von Aufrufen von SHAddToRecentDocs
In Versionen von Windows vor Windows 7 kann ein Dateityp das FTA_NoRecentDocs-Flag festlegen, um zu verhindern, dass dieser Dateityp dem Ordner Zuletzt verwendet hinzugefügt wird. Dieser Mechanismus wird auch unter Windows 7 und höher unterstützt. Weitere Informationen finden Sie unter Dateitypen .SHAddToRecentDocs verfolgt dokumentverwendungsstatistiken über die Verben nach, die für den Zugriff auf diese Dokumente aufgerufen werden. Verben, die von registrierten IContextMenu-Handlern bereitgestellt werden, werden nachverfolgt. Diese Elemente werden unter Meine zuletzt verwendeten Dokumente (Windows XP) und Zuletzt verwendete Elemente (Windows Vista) angezeigt. In Windows 7 werden die übergeordneten Ordner der Dokumente in der Sprungliste für die Schaltfläche Windows Explorer Taskleiste angezeigt. Die Dokumente, auf die über diese IContextMenu-Verben zugegriffen wird, werden jedoch nicht in jump Listen der Anwendung angezeigt. Damit diese Elemente in der Sprungliste einer Anwendung angezeigt werden, muss eine Anwendung SHAddToRecentDocs explizit aufrufen.
Vor Windows 7 führte nur das open
Verb zu einem Aufruf von SHAddToRecentDocs. In Windows 7 und höher können auch andere Verben Nutzungsstatistiken generieren. Diese Informationen werden verwendet, um die Ziele einer Sprungliste vollständiger und genauer zu machen.
Einige Klassen von Dateitypzuordnungsregistrierungen oder einzelne IContextMenu-Implementierungen sind jedoch nicht für diese Art der Nachverfolgung geeignet. Der Punkt der Nutzungsnachverfolgung besteht darin, eine Liste von Elementen zu generieren, auf die der Benutzer wahrscheinlich erneut zugreifen möchte. Wenn ein bestimmtes Verb –delete
für instance – inhärent für ein Element aufgerufen wird, auf das der Benutzer nicht erneut zugreift, oder eine sekundäre Aktion wie eine Virenüberprüfung für eine Datei ist, ist dieses Verb nicht für die Nachverfolgung geeignet. Dateitypklassen sollten sich über den Registrierungseintrag NoRecentDocs aus dieser Nachverfolgung entfernen. NoRecentDocs ist vom Typ REG_SZ und enthält keine zugeordneten Daten. Sein Vorhandensein ist alles, was erforderlich ist, um den Aufruf von SHAddToRecentDocs zu verhindern.
Beispielsweise sollten Kontextmenüerweiterungen und statische Verben, die unter HKEY_CLASSES_ROOT in Klassen wie "*", "AllFileSystemObjects" oder "Folder" registriert sind, nicht nachverfolgt werden. In solchen Fällen wird der NoRecentDocs-Eintrag dem Stamm des Klassenschlüssels hinzugefügt, wie hier gezeigt, um die Nachverfolgung von Dokumenten zu unterdrücken, die über ein beliebiges Verb oder eine Erweiterung gestartet wurden, die für diese Klasse registriert sind:
HKEY_CLASSES_ROOT AllFileSystemObjects NoRecentDocs
Der NoRecentDocs-Eintrag wird standardmäßig den *Unterschlüsseln , AllFileSystemObjects, Folder, Directory und DesktopBackground zugewiesen.
Einzelne IContextMenu-Implementierungen können die Nachverfolgung deaktivieren, indem sie einen NoRecentDocs-Unterschlüssel zur Registrierung des COM-Objekts (Component Object Model) in seinem Shellex-Unterschlüssel hinzufügen, wie hier gezeigt:
HKEY_CLASSES_ROOT CLSID {093C7AAB-5E72-454f-A91D-CA1BC991FCEC} shellex NoRecentDocs
Dieser Unterschlüssel ist in keiner IContextMenu-Implementierung standardmäßig vorhanden.
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Windows XP [nur Desktop-Apps] |
Unterstützte Mindestversion (Server) | Windows 2000 Server [nur Desktop-Apps] |
Zielplattform | Windows |
Kopfzeile | shlobj_core.h (einschließlich Shlobj.h) |
Bibliothek | Shell32.lib |
DLL | Shell32.dll (Version 4.0 oder höher) |
APIs | ext-ms-win-shell-shell32-l1-2-2 (eingeführt in Windows 10, Version 10.0.14393) |