Compartir a través de


Integración de un proveedor de almacenamiento en la nube

Cuando tenga un proveedor de almacenamiento en la nube, debe realizar un par de pasos 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 al Shell de Windows conocer la aplicación y que la aplicación será responsable de sincronizar archivos en la raíz de sincronización. Esto también permitirá a otras aplicaciones saber que está sincronizando estos archivos para que puedan responder correctamente. A continuación, otras aplicaciones pueden usar StorageFile.Provider para obtener el DisplayName y el identificador 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.

  • [identificador del 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 una cuenta profesional y personal. El identificador de cuenta le permite tener varias cuentas registradas para un usuario. Si el proveedor admite varias raíces de sincronización por usuario, esta pieza es necesaria.

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 deben crearse.

  • HKLM\Software\Microsoft\Windows\CurrentVersion\Explorer\SyncRootManager\[identificador de proveedor de almacenamiento]![SID de Windows]![Id. de cuenta]\DisplayNameResource: apunta al recurso donde el Shell de Windows u otras aplicaciones puede obtener un nombre descriptivo para la raíz de sincronización.
  • HKLM\Software\Microsoft\Windows\CurrentVersion\Explorer\SyncRootManager\[identificador de proveedor de almacenamiento]![SID de Windows]![Id. de cuenta]\IconResource: apunta al recurso donde el Shell de Windows u otras aplicaciones pueden obtener un icono para la raíz de sincronización.
  • HKLM\Software\Microsoft\Windows\CurrentVersion\Explorer\SyncRootManager\[identificador 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 del registro 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 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 de Explorador de archivos permitirá a los usuarios interactuar con el nivel raíz de los servicios tal como se usan con otros elementos de Explorador de archivos. En este tema se explica cómo extender el espacio de nombres 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 de OneDrive, Este equipo y Red. Siguiendo estos pasos, agregará la extensión al mismo nivel.

panel de navegación

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 de identificación 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 (Clave CLSID ) 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 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 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 del 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

Si se establece este valor en 0x1 se indica que la extensión se debe anclar. Esto se asegurará de que se muestre a los usuarios de forma predeterminada. La configuración predeterminada de un usuario es que solo se mostrarán los 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 que 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 de Windows predeterminadas. Cambie esto solo 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: Definición del objeto de instancia

Indique que la extensión de espacio de nombres debe funcionar como otras estructuras de carpetas de archivos en 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, ambos son constantes de atributo 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 de 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: Establecimiento de las marcas adecuadas para controlar el comportamiento del shell

Establezca las marcas de SFGAO 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