Freigeben über


Integrieren eines Cloudspeicheranbieters

Wenn Sie über einen Cloudspeicheranbieter verfügen, müssen Sie einige Schritte ausführen, um dem Benutzer eine konsistente und bevorzugte Benutzeroberfläche zu bieten. Diese beiden Dinge sind die Registrierung als Synchronisierungsstammanbieter und die Integration Ihrer Anwendung in die Stammebene des Navigationsbereichs.

Wichtig

Die Integration Ihres Cloudspeicheranbieters wird nur ab Windows 10 unterstützt.

 

Zuerst registrieren Sie sich als Synchronisierungsstammanbieter. Dadurch wird die Windows Shell über Ihre Anwendung informiert und dass Ihre Anwendung für die Synchronisierung von Dateien unter Ihrem Synchronisierungsstamm verantwortlich ist. Dadurch werden auch andere Anwendungen darüber informiert, dass Sie diese Dateien synchronisieren, damit sie entsprechend reagieren können. Andere Anwendungen können dann StorageFile.Provider verwenden, um den DisplayName und die ID Ihrer Anwendung abzurufen.

Um sich als Synchronisierungsstammanbieter registrieren zu können, müssen Sie mehrere Registrierungseinträge erstellen. Bevor Sie die Liste der Schlüssel-Wert-Paare bereitstellen, finden Sie hier einige Platzhalter, die Sie durch Ihre eigenen Anwendungsdaten ersetzen sollten.

  • [Speicheranbieter-ID]: Der Name Ihres Cloudspeicheranbieters. Dieser Name sollte unabhängig von der Version Ihrer Anwendung konsistent sein. Ein Beispiel hierfür ist OneDrive.
  • [Windows SID]: Die eindeutige Windows-SID, die den Benutzer identifiziert. Wenn Ihre App mehrere Installationen für mehrere Benutzer auf einem einzelnen Computer unterstützt, ist dieses Stück erforderlich.
  • [Konto-ID]: Der Dienstanbieterbezeichner für das aktuelle Konto dieses Benutzers. Einige Anbieter erfordern die Möglichkeit, mehrere Synchronisierungswurzeln für einen Benutzer bereitzustellen. Ein Beispiel hierfür ist ein Werk und ein persönliches Konto. Mit der Konto-ID können Sie mehrere Konten für einen Benutzer registrieren. Wenn Ihr Anbieter mehrere Synchronisierungsstamme pro Benutzer unterstützt, ist dieses Element erforderlich.

Diese Platzhalter werden kombiniert, um die Synchronisierungsstamm-ID zu bilden. Sie müssen beim Erstellen der Synchronisierungsstamm-ID zwischen jedem der Platzhalter ein Zeichen ! platzieren. Hier sind die Schlüssel-Wert-Paare, die erstellt werden müssen.

  • HKLM\Software\Microsoft\Windows\CurrentVersion\Explorer\SyncRootManager\[Speicheranbieter-ID]![Windows SID]![Konto-ID]\DisplayNameResource: Zeigt auf die Ressource, in der die Windows Shell oder andere Anwendungen einen benutzerfreundlichen Namen für Ihren Synchronisierungsstamm erhalten können.
  • HKLM\Software\Microsoft\Windows\CurrentVersion\Explorer\SyncRootManager\[Speicheranbieter-ID]![Windows SID]![Konto-ID]\IconResource : Zeigt auf die Ressource, in der die Windows Shell oder andere Anwendungen ein Symbol für Ihren Synchronisierungsstamm erhalten kann.
  • HKLM\Software\Microsoft\Windows\CurrentVersion\Explorer\SyncRootManager\[Speicheranbieter-ID]![Windows SID]![Konto-ID]\UserSyncRoots\[Windows SID] : Der Speicherort auf dem Datenträger, an dem sich der Synchronisierungsstamm befindet.

Abgesehen von der Registrierung als Synchronisierungsstammanbieter möchten Sie auch, dass Benutzer einfachen Zugriff auf die von Ihnen bereitgestellten Daten haben. Der Explorer-Namespace wurde entwickelt, um eine Methode für diesen einfachen Zugriff bereitzustellen. Wenn Sie eine Namespaceerweiterung für Ihren Anbieter erstellen und sie in das Explorer-Fenster integrieren, können Benutzer mit der Stammebene Ihrer Dienste genauso interagieren, wie sie es mit anderen Explorer Elementen gewohnt sind. In diesem Thema wird erläutert, wie Sie den Explorer-Namespace erweitern, sodass Ihr Anbieter auf der Stammebene im Navigationsbereich angezeigt wird.

Der Navigationsbereich des Explorer-Fensters ist der Teil des Fensters, der auf der linken Seite angezeigt wird. In der folgenden Abbildung sehen Sie die Namespacestruktur für diesen Benutzer. Die Stammebene im Navigationsbereich enthält die Objekte für OneDrive, Diesen PC und Netzwerk. Wenn Sie diese Schritte ausführen, wird Ihre Erweiterung auf die gleiche Ebene hinzugefügt.

Navigationsbereich

Um Ihre Erweiterung dem Navigationsbereich hinzuzufügen, müssen Sie folgendes haben, bevor Sie die Registrierung bearbeiten:

  • Ein Dateisystemordner, der die Daten enthält, die dem Benutzer angezeigt werden sollen.

  • Name Ihres Clouddiensts, der im Navigationsbereich angezeigt wird. Dies kann auch der Name des instance sein, wenn Ihr Dienst mehrere Konten unterstützt.

  • Identifizierbares Symbol für Ihre Anwendung.

  • Eine CLSID für Ihre Anwendung. Eine Möglichkeit zum Generieren einer CLSID für Ihre Anwendung besteht darin, die Uuidgen.exe zu verwenden. Weitere Informationen zu CLSID finden Sie unter CLSID-Schlüssel .

Die folgenden Schritte ändern die Registrierung, um die erforderlichen Informationen in den Explorer-Namespace abzurufen. Die spezifischen Schritte führen drei Dinge aus.

  • Erstellen Sie Schlüssel in der Registrierung für Ihre CLSID, die Werte für den Namen und das Symbol für Ihre Erweiterung sowie andere Informationen enthält, die ihr Verhalten definieren.

  • Konfigurieren Sie Ihre Erweiterung so, dass sie an der richtigen Stelle und mit der richtigen Sichtbarkeit in den Navigationsbereich integriert wird.

  • Konfigurieren Sie Ihre Erweiterung so, dass sie das erwartete Verhalten für ein Element im Navigationsbereich aufweist.

In diesen Anweisungen wird insbesondere der Befehlreg.exe verwendet. Sie können jedoch ein beliebiges Bearbeitungstool für die Registrierung verwenden. Sie können diese Schritte sogar in ein Installationsprogramm integrieren, das die Registrierung programmgesteuert aktualisiert.

Anweisungen

Schritt 1: Hinzufügen Ihrer CLSID und Namen ihrer Erweiterung

Fügen Sie der Registrierung unter HKEY_CURRENT_USER den Namen Ihrer Erweiterung hinzu. Sie fügen auch den eindeutigen Bezeichner für diese Erweiterung hinzu. Es ist möglich, mehr als eine Erweiterung pro Benutzer hinzuzufügen, aber in diesem Fall benötigen Sie einen eindeutigen Namen und Bezeichner für jede Erweiterung. Dieser Name und dieser Bezeichner müssen während der restlichen Schritte konsistent sein. In diesem Beispiel lautet der Name MyCloudStorageApp.

Wichtig

Der in diesen Schritten angegebene Bezeichner (0672A6D1-A6E0-40FE-AB16-F25BADC6D9E3) wird nur als Beispiel verwendet. Sie müssen dies in Ihre eindeutige CLSID ändern.

 

reg add HKCU\Software\Classes\CLSID\{0672A6D1-A6E0-40FE-AB16-F25BADC6D9E3} /ve /t REG_SZ /d "MyCloudStorageApp" /f

Schritt 2: Festlegen des Bilds für Ihr Symbol

Geben Sie den Pfad zum Symbol an, das im Navigationsbereich angezeigt werden soll. Im folgenden Beispiel verweist 1043 auf den Ressourcenbezeichner für das Symbol in der angegebenen DLL.

Wichtig

Sie müssen den Imagepfad aktualisieren. Es sollte auf einen generischen Pfad verweisen, in dem Ihre App ein Image installiert hat.

 

reg add HKCU\Software\Classes\CLSID\{0672A6D1-A6E0-40FE-AB16-F25BADC6D9E3}\DefaultIcon /ve /t REG_EXPAND_SZ /d %%SystemRoot%%\system32\imageres.dll,-1043 /f

Schritt 3: Hinzufügen ihrer Erweiterung zum Navigationsbereich und Sichtbarmachen

Wenn Sie diesen Wert auf 0x1 festlegen, wird angegeben, dass die Erweiterung angeheftet werden soll. Dadurch wird sichergestellt, dass es benutzern standardmäßig angezeigt wird. Die Standardkonfiguration für einen Benutzer besteht darin, dass nur angeheftete Elemente im Navigationsbereich angezeigt werden. Ein Benutzer kann diese Einstellung ändern, indem er mit der rechten Maustaste im Navigationsbereich klickt und alle Ordner anzeigen auswählt. Wenn Sie ihre Erweiterung nicht anheften möchten, können Sie diesen Wert auf 0x0 festlegen. Dadurch wird Ihre Erweiterung nicht entfernt, sondern lediglich verhindert, dass sie dem Benutzer standardmäßig angezeigt wird.

reg add HKCU\Software\Classes\CLSID\{0672A6D1-A6E0-40FE-AB16-F25BADC6D9E3} /v System.IsPinnedToNameSpaceTree /t REG_DWORD /d 0x1 /f

Schritt 4: Festlegen des Speicherorts für Ihre Erweiterung im Navigationsbereich

Dies ist wichtig, um sicherzustellen, dass der Navigationsbereich eine konsistente Benutzeroberfläche für den Benutzer bietet.

reg add HKCU\Software\Classes\CLSID\{0672A6D1-A6E0-40FE-AB16-F25BADC6D9E3} /v SortOrderIndex /t REG_DWORD /d 0x42 /f

Schritt 5: Geben Sie die DLL an, die Ihre Erweiterung hostet.

Verwenden Sie die shell32.dll, um standard Windows-Ordner zu emulieren. Ändern Sie dies nur, wenn Sie einen bestimmten Grund dafür haben und mit Namespaceerweiterungen vertraut sind.

reg add HKCU\Software\Classes\CLSID\{0672A6D1-A6E0-40FE-AB16-F25BADC6D9E3}\InProcServer32 /ve /t REG_EXPAND_SZ /d %%systemroot%%\system32\shell32.dll /f

Schritt 6: Definieren des instance-Objekts

Geben Sie an, dass Ihre Namespaceerweiterung wie andere Dateiordnerstrukturen in Explorer funktionieren soll. Weitere Informationen zu Shell-instance-Objekten finden Sie unter Erstellen von Shellerweiterungen mit Shellinstanzobjekten.

reg add HKCU\Software\Classes\CLSID\{0672A6D1-A6E0-40FE-AB16-F25BADC6D9E3}\Instance /v CLSID /t REG_SZ /d {0E5AAE11-A475-4c5b-AB00-C66DE400274E} /f

Schritt 7: Bereitstellen der Dateisystemattribute des Zielordners

Dies ist erforderlich, um sicherzustellen, dass die Explorer eine konsistente und erwartete Benutzerfreundlichkeit bietet. Dieser Befehl legt FILE_ATTRIBUTE_DIRECTORY und FILE_ATTRIBUTE_READONLY fest, die beide Dateiattributekonstanten sind.

reg add HKCU\Software\Classes\CLSID\{0672A6D1-A6E0-40FE-AB16-F25BADC6D9E3}\Instance\InitPropertyBag /v Attributes /t REG_DWORD /d 0x11 /f

Schritt 8: Festlegen des Pfads für den Synchronisierungsstamm

Legen Sie den Pfad für den Synchronisierungsstamm fest.

reg add HKCU\Software\Classes\CLSID\{0672A6D1-A6E0-40FE-AB16-F25BADC6D9E3}\Instance\InitPropertyBag /v TargetFolderPath /t REG_EXPAND_SZ /d %%USERPROFILE%%\MyCloudStorageApp /f

Schritt 9: Festlegen entsprechender Shellflags

Legen Sie einige Flags fest, die erforderlich sind, um Ihre Namespaceerweiterung an die Explorer-Struktur anzuheften.

reg add HKCU\Software\Classes\CLSID\{0672A6D1-A6E0-40FE-AB16-F25BADC6D9E3}\ShellFolder /v FolderValueFlags /t REG_DWORD /d 0x28 /f

Schritt 10: Festlegen der entsprechenden Flags zum Steuern des Shellverhaltens

Legen Sie die entsprechenden SFGAO-Flags fest. Die relevanten Flags sind SFGAO_CANCOPY, SFGAO_CANLINK, SFGAO_STORAGE, SFGAO_HASPROPSHEET, SFGAO_STORAGEANCESTOR, SFGAO_FILESYSANCESTOR, SFGAO_FOLDER, SFGAO_FILESYSTEM und SFGAO_HASSUBFOLDER.

reg add HKCU\Software\Classes\CLSID\{0672A6D1-A6E0-40FE-AB16-F25BADC6D9E3}\ShellFolder /v Attributes /t REG_DWORD /d 0xF080004D /f

Schritt 11: Registrieren Der Erweiterung im Namespacestamm

Konfigurieren Sie die Namespaceerweiterung als untergeordnetes Element des Desktopordners.

reg add HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Desktop\NameSpace\{0672A6D1-A6E0-40FE-AB16-F25BADC6D9E3} /ve /t REG_SZ /d MyCloudStorageApp /f

Schritt 12: Ausblenden der Erweiterung auf dem Desktop

Es ist wichtig, dass Ihre Erweiterung nur im Navigationsbereich des Explorer angezeigt wird. Eine Namespaceerweiterung funktioniert nicht wie eine normale Verknüpfung. Daher sollten Sie diese Methode nicht verwenden, um eine Desktopverknüpfung zu erstellen.

reg add HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\HideDesktopIcons\NewStartPanel /v {0672A6D1-A6E0-40FE-AB16-F25BADC6D9E3} /t REG_DWORD /d 0x1 /f