Especificación de identificadores de archivo para extensiones de nombre de archivo

Hay varias maneras de determinar la aplicación que controla un archivo que tiene una extensión de archivo determinada. Los verbos OpenWithList y OpenWithProgids son dos maneras de especificar controladores de archivos en la entrada del Registro para la extensión de archivo.

Verbo OpenWithList

Al hacer clic con el botón derecho en un archivo en el Explorador de Windows, verá el comando Abrir . Si hay más de un producto asociado a una extensión, verá un submenú Abrir con .

Puede registrar diferentes aplicaciones para abrir una extensión estableciendo la clave OpenWithList para la extensión de archivo en HKEY_CLASSES_ROOT. Las aplicaciones enumeradas en esta clave para una extensión de archivo aparecen en el encabezado Programas recomendados en el cuadro de diálogo Abrir con . En el ejemplo siguiente se muestran las aplicaciones registradas para abrir la extensión de archivo .vcproj.

HKEY_CLASSES_ROOT\
   .vcproj\
      (default)="VisualStudio.vcproj.14.0"
      OpenWithList\
         devenv.exe

Nota:

Las claves que especifican aplicaciones proceden de la lista en HKEY_CLASSES_ROOT\Applications.

Al agregar una clave OpenWithList, se declara que la aplicación admite una extensión de archivo incluso si otra aplicación toma posesión de la extensión. Podría tratarse de una versión futura de la aplicación u otra aplicación.

OpenWithProgIDs

Los identificadores de programación (ProgID) son versiones de classID que identifican una versión de una aplicación o un objeto COM. Cada objeto co-creable debe tener su propio ProgID. Por ejemplo, VisualStudio.DTE.7.1 inicia Visual Studio .NET 2003 mientras VisualStudio.DTE.10.0 inicia Visual Studio. Como propietario de un tipo de proyecto o tipo de elemento de proyecto, debe crear un ProgID específico de la versión para la extensión de archivo. Estos ProgID pueden ser redundantes en que más de un ProgID puede iniciar la misma aplicación. Para obtener más información, vea Registrar verbos para extensiones de nombre de archivo.

Use la siguiente convención de nomenclatura para progID de archivos con versiones para evitar la duplicación con el registro de otros proveedores:

Extensión de archivo ProgID con versiones
.Extensión Productname. extension.versionMajor.versionMinor

Puede registrar diferentes aplicaciones que puedan abrir una extensión de archivo determinada agregando progID con versiones como valores a la clave HKEY_CLASSES_ROOT\<extension>\OpenWithProgids. Esta clave del Registro contiene una lista de progID alternativos asociados a la extensión de archivo. Las aplicaciones asociadas a los progID enumerados aparecen en el submenú Abrir connombre de producto. Si se especifica la misma aplicación en las OpenWithList claves y OpenWithProgids , el sistema operativo combina los duplicados.

Nota:

La OpenWithProgids clave solo se admite en Windows XP. Dado que otros sistemas operativos omiten esta clave, no lo usen como el único registro para los controladores de archivos. Use esta clave para proporcionar una mejor experiencia de usuario en Windows XP.

Agregue los ProgID deseados como valores del tipo REG_NONE. El código siguiente proporciona un ejemplo de registro de ProgID para una extensión de archivo (.ext).

HKEY_CLASSES_ROOT\
   .ext\
      (default)="MyProduct.ext.14.0"
      OpenWithProgids
         progid        REG_NONE (zero-length binary value)
         otherprogid   REG_NONE (zero-length binary value)

ProgID especificado como valor predeterminado para la extensión de archivo es el controlador de archivos predeterminado. Si modifica progID para una extensión de archivo que se incluye con una versión anterior de Visual Studio o que otras aplicaciones pueden asumir, debe registrar la OpenWithProgids clave de la extensión de archivo y especificar el nuevo ProgID en la lista junto con los progID antiguos que admite. Por ejemplo:

HKEY_CLASSES_ROOT\
   .vcproj\
      (default)="VisualStudio.vcproj.14.0"
      OpenWithProgids
         vcprojfile              //old progid
         VisualStudio.vcproj.12.0 //old progid
         VisualStudio.vcproj.14.0 //new progid

Si el progID antiguo tiene verbos asociados, estos verbos también aparecerán en Abrir connombre de producto en el menú contextual.