Compartir a través de


Integración de un proveedor de almacenamiento en la nube

Cuando tiene un proveedor de almacenamiento en la nube, hay un par de pasos que debe seguir para proporcionar una experiencia coherente y preferida para el usuario. Estas dos cosas se registran como un proveedor raíz de sincronización e integran la aplicación en el nivel raíz del panel de navegación.

Importante

La integración del proveedor de almacenamiento en la nube solo se admite a partir de Windows 10.

 

Lo primero es registrarse como proveedor raíz de sincronización. Esto permite que el Shell de Windows conozca la aplicación y que la aplicación será responsable de sincronizar archivos en la raíz de sincronización. Esto también informará a otras aplicaciones de que está sincronizando estos archivos para que puedan responder correctamente. A continuación, otras aplicaciones pueden usar storageFile.Provider para obtener eldisplayName dey id. de la aplicación.

Para registrarse como proveedor raíz de sincronización, deberá crear varias entradas del Registro. Antes de proporcionar la lista de pares clave-valor, estos son algunos marcadores de posición que debe reemplazar por sus propios datos de aplicación.

  • [id. de proveedor de almacenamiento]: el nombre del proveedor de almacenamiento en la nube. Este nombre debe ser coherente independientemente de la versión de la aplicación. Un ejemplo de esto es OneDrive.
  • [SID de Windows]: el SID de Windows único que identifica al usuario. Si la aplicación admite varias instalaciones para varios usuarios en una sola máquina, se requiere esta pieza.
  • [Id. de cuenta]: identificador del proveedor de servicios para la cuenta actual de este usuario. Algunos proveedores requieren la capacidad de proporcionar varias raíces de sincronización para un usuario. Un ejemplo de esto es un trabajo y una cuenta personal. El de id. de cuenta de le permite tener varias cuentas registradas para un usuario. Si el proveedor admite varias raíces de sincronización por usuario, se requiere esta pieza.

Estos marcadores de posición se combinan para formar el identificador raíz de sincronización. Debe colocar un ! carácter entre cada uno de los marcadores de posición al formar el identificador raíz de sincronización. Estos son los pares clave-valor que se deben crear.

  • HKLM\Software\Microsoft\Windows\CurrentVersion\Explorer\SyncRootManager\[id. de proveedor de almacenamiento]![SID de Windows]![Id. de cuenta]\DisplayNameResource : apunta al recurso donde windows Shell u otras aplicaciones pueden obtener un nombre descriptivo para la raíz de sincronización.
  • HKLM\Software\Microsoft\Windows\CurrentVersion\Explorer\SyncRootManager\[id. de proveedor de almacenamiento]![SID de Windows]![Id. de cuenta]\IconResource : apunta al recurso donde windows Shell u otras aplicaciones pueden obtener un icono para la raíz de sincronización.
  • HKLM\Software\Microsoft\Windows\CurrentVersion\Explorer\SyncRootManager\[id. de proveedor de almacenamiento]![SID de Windows]![Id. de cuenta]\UserSyncRoots\[SID de Windows] : la ubicación en el disco donde se encuentra la raíz de sincronización.

Aparte de registrarse como proveedor raíz de sincronización, también quiere que los usuarios tengan fácil acceso a los datos que proporcione. El espacio de nombres del Explorador de archivos está diseñado para proporcionar un método para ese fácil acceso. La creación de una extensión de espacio de nombres para el proveedor y su incorporación en la ventana Explorador de archivos permitirá a los usuarios interactuar con el nivel raíz de los servicios tal como se usan con otros elementos del Explorador de archivos. En este tema se explica cómo extender el espacio de nombres del Explorador de archivos para que el proveedor aparezca en el nivel raíz del panel de navegación.

El panel de navegación de la ventana Explorador de archivos es la parte de la ventana que se muestra en el lado izquierdo. En la imagen siguiente, puede ver la estructura del espacio de nombres para este usuario. El nivel raíz del panel de navegación incluye los objetos para oneDrive, Este equipoy Network. Siguiendo estos pasos, agregará la extensión al mismo nivel.

Para agregar la extensión al panel de navegación, deberá tener lo siguiente antes de editar el registro:

  • Carpeta del sistema de archivos que contiene los datos que se van a mostrar al usuario.

  • Nombre del servicio en la nube que aparecerá en el panel de navegación. También podría ser el nombre de la instancia si el servicio admite varias cuentas.

  • Icono identificable de la aplicación.

  • CLSID para la aplicación. Una manera de generar un CLSID para la aplicación es usar el Uuidgen.exe. Consulte clSID Key para obtener más información sobre CLSID.

Los pasos siguientes modifican el Registro para obtener la información necesaria en el espacio de nombres del Explorador de archivos. Los pasos específicos realizan tres cosas.

  • Cree claves en el Registro para el CLSID que incluya valores para el nombre y el icono de la extensión, así como otra información que defina su comportamiento.

  • Configure la extensión para que se integre en el panel de navegación en la ubicación adecuada y con la visibilidad adecuada.

  • Configure la extensión para que tenga el comportamiento esperado de un elemento en el panel de navegación.

Estas instrucciones usan específicamente el comando reg.exe, pero puede usar cualquier herramienta de edición del Registro de su elección. Incluso puede integrar estos pasos en un instalador que actualice el registro mediante programación.

Instrucciones

Paso 1: Agregar el CLSID y asignar un nombre a la extensión

Agregue el nombre de la extensión al Registro en HKEY_CURRENT_USER. También agregará el identificador único para esta extensión. Es posible agregar más de una extensión por usuario, pero en ese caso necesitará un nombre y un identificador únicos para cada extensión. Este nombre e identificador deben ser coherentes en todo el resto de estos pasos. En este ejemplo, el nombre es MyCloudStorageApp.

Importante

El identificador proporcionado (0672A6D1-A6E0-40FE-AB16-F25BADC6D9E3) en estos pasos se usa simplemente como ejemplo. Tendrá que cambiar esto a su CLSID único.

 

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

Paso 2: Establecer la imagen para el icono

Proporcione la ruta de acceso al icono que se debe mostrar en el panel de navegación. En el ejemplo siguiente, 1043 hace referencia al identificador de recurso del icono en el archivo DLL indicado.

Importante

Debe actualizar la ruta de acceso de la imagen. Debe apuntar a una ruta de acceso genérica donde la aplicación instaló una imagen.

 

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

Paso 3: Agregar la extensión al panel de navegación y hacer que sea visible

Establecer este valor en 0x1 indica que se debe anclar la extensión. Esto se asegurará de que se muestre a los usuarios de forma predeterminada. La configuración predeterminada para un usuario es que solo se mostrarán elementos anclados en el panel de navegación. Un usuario puede cambiar esa configuración haciendo clic con el botón derecho en el panel de navegación y seleccionando Mostrar todas las carpetas. Si no desea anclar la extensión, puede establecer este valor en 0x0. Esto no quitará la extensión, sino simplemente impedir que se muestre al usuario de forma predeterminada.

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

Paso 4: Establecer la ubicación de la extensión en el panel de navegación

Esto es fundamental para asegurarse de que el panel de navegación proporciona una experiencia coherente para el usuario.

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

Paso 5: Proporcione el archivo DLL que hospeda la extensión.

Use el shell32.dll para emular las carpetas predeterminadas de Windows. Solo cambie esto si tiene un motivo específico para hacerlo y está familiarizado con las extensiones de espacio de nombres.

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

Paso 6: Definir el objeto de instancia

Indique que la extensión de espacio de nombres debe funcionar como otras estructuras de carpetas de archivos en el Explorador de archivos. Para obtener más información sobre los objetos de instancia de shell, consulte Creación de extensiones de shell con objetos de instancia de Shell.

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

Paso 7: Proporcionar los atributos del sistema de archivos de la carpeta de destino

Esto es necesario para asegurarse de que el Explorador de archivos proporciona una experiencia coherente y esperada para los usuarios. Este comando establece FILE_ATTRIBUTE_DIRECTORY y FILE_ATTRIBUTE_READONLY, ambas constantes de atributos de archivo .

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

Paso 8: Establecer la ruta de acceso de la raíz de sincronización

Establezca la ruta de acceso de la raíz de sincronización.

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

Paso 9: Establecer las marcas de shell adecuadas

Establezca algunas marcas necesarias para anclar la extensión de espacio de nombres al árbol del Explorador de archivos.

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

Paso 10: Establecer las marcas adecuadas para controlar el comportamiento del shell

Establezca las marcas dedeSFGAO adecuadas. Las marcas pertinentes son SFGAO_CANCOPY, SFGAO_CANLINK, SFGAO_STORAGE, SFGAO_HASPROPSHEET, SFGAO_STORAGEANCESTOR, SFGAO_FILESYSANCESTOR, SFGAO_FOLDER, SFGAO_FILESYSTEM y SFGAO_HASSUBFOLDER.

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

Paso 11: Registrar la extensión en la raíz del espacio de nombres

Configure la extensión de espacio de nombres para que sea un elemento secundario de la carpeta de escritorio.

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

Paso 12: Ocultar la extensión del escritorio

Es importante que la extensión solo aparezca en el panel de navegación del Explorador de archivos. Una extensión de espacio de nombres no funciona como un acceso directo normal. Por lo tanto, no debe usar este método para crear un acceso directo de escritorio.

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