Freigeben über


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:

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.)
Elemente, die durch einen IShellLink dargestellt werden, werden dem Ordner Zuletzt verwendet nicht hinzugefügt, obwohl sie in der Sprungliste einer Anwendung angezeigt werden.

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.
Diese Registrierung erfolgt pro Benutzer.

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)

Weitere Informationen

SHGetFolderLocation

SHGetFolderPath