Identificadores de programación

Shell usa una subclave del Registro de identificador de programación (ProgID) para asociar un tipo de archivo a una aplicación y controlar el comportamiento de la asociación. Las entradas de ProgID usadas para las asociaciones de archivos se encuentran en HKEY_CLASSES_ROOT en el Registro.

Este tema se organiza de la siguiente manera:

Para obtener información adicional, lea How To Register a File Type for a New Application (Cómo registrar un tipo de archivo para una nueva aplicación).

Elementos de identificador de programación usados por asociaciones de archivos

El formato adecuado de un nombre de clave de ProgID es [Proveedor o Aplicación]. [Componente]. [Versión], separados por puntos y sin espacios, como en Word. Document.6. La parte Versión es opcional, pero se recomienda encarecidamente. Para obtener más información, vea Usar identificadores de programación con versiones.

Una subclave ProgID debe incluir los siguientes elementos. Tenga en cuenta que algunos datos de cadena de esta clave requieren un formato específico.

Elemento Descripción
(Valor predeterminado) Establezca la entrada predeterminada de la subclave ProgID en un nombre descriptivo para ese ProgID, adecuado para mostrar al usuario. El uso de esta entrada para contener el nombre descriptivo está en desuso por la entrada FriendlyTypeName en los sistemas que ejecutan Windows 2000 o posterior. Sin embargo, debe establecer este valor para la compatibilidad con versiones anteriores.
AllowSilentDefaultTakeOver (introducido en Windows 8) Establezca esta entrada opcional para indicar que Windows debe omitir este ProgID al determinar un controlador predeterminado para un tipo de archivo público. Independientemente de si se establece este valor, progID continúa apareciendo en el menú contextual OpenWith y el cuadro de diálogo. Se trata de un valor de REG_NONE.
AppUserModelID (introducido en Windows 7) Establezca esta entrada opcional en el identificador explícito del modelo de usuario de la aplicación (AppUserModelID) si la aplicación usa un AppUserModelID explícito y usa las listas de accesos directos recientes o frecuentes generadas automáticamente por el sistema o proporciona una lista de accesos directos personalizada. Si una aplicación usa un AppUserModelID explícito y no establece este valor, los elementos no aparecerán en las listas de accesos directos de esa aplicación. Se trata de una cadena de REG_SZ. Para obtener más información, vea Identificadores de modelo de usuario de aplicación (AppUserModelIDs).
EditFlags Establezca esta entrada opcional mediante marcas de la enumeración FILETYPEATTRIBUTEFLAGS . La entrada EditFlags controla algunos aspectos del control del Shell de los tipos de archivo vinculados a este ProgID. También puede usar la entrada EditFlags para limitar cuánto puede modificar el usuario ciertos aspectos de estos tipos de archivo mediante la hoja de propiedades de un archivo. Los valores FILETYPEATTRIBUTEFLAGS usados para EditFlags son valores binarios diseñados para poder combinar varios atributos en un solo valor en una operación OR bit a bit. Se trata de un valor de REG_DWORD o REG_BINARY.
FriendlyTypeName Establezca esta entrada en un nombre descriptivo para progID, adecuado para mostrar al usuario. Para la coherencia, esta cadena debe contener los mismos datos que la entrada Predeterminada para esta clave progID. Esta entrada puede ser una cadena REG_SZ o REG_EXPAND_SZ, pero debe tener el formato de cadena indirecta (un nombre de archivo completo y un valor de recurso precedido por el símbolo @), por ejemplo @%SystemRoot%\shell32.dll,-154.
Información sobre información Establezca esta entrada en un breve mensaje de ayuda que el Shell muestra para este ProgID. La entrada Información sobre información se muestra en un cuadro de diálogo sobre el mouse. Este valor puede ser una cadena REG_SZ o REG_EXPAND_SZ, pero, como FriendlyTypeName, debe tener el formato de cadena indirecta.
Curver Establezca la entrada (valor predeterminado) de esta subclave en la versión más actual de este ProgID.
Nota: A menos que tenga versiones de aplicaciones en paralelo, es decir, varias versiones instaladas en el mismo sistema, debe evitar el uso de CurVer.
DefaultIcon. Establezca la entrada (Valor predeterminado) de esta subclave en el icono predeterminado que desea mostrar para los tipos de archivo asociados a este ProgID. Este valor puede ser una cadena de REG_SZ o REG_EXPAND_SZ, pero debe proporcionarse como un nombre de archivo completo con su valor de recurso operador, por ejemplo %SystemRoot%\shell32.dll,-154.

 

En el ejemplo de clave del Registro siguiente se muestra un nodo de clave ProgID de asociación de archivos:

HKEY_CLASSES_ROOT
   Vendor.App.1
      (Default) = My Friendly Name
      AllowSilentDefaultTakeOver
      AppUserModelID = Vendor.Application
      EditFlags = 0x00000001
      FriendlyTypeName = @%SystemRoot%\shell32.dll,-154
      InfoTip = @%SystemRoot%\shell32.dll,-54
      CurVer
         (Default) = Vendor.App.1
      DefaultIcon
         (Default) = %SystemRoot%\shell32.dll,-1

Uso de identificadores de programación con versiones

Un ProgID con versiones es uno cuya versión se indica en su nombre. Normalmente, lo hace agregando un punto y el número de versión al nombre. Por ejemplo:

  • Word. Document.6
  • Word. Document.8

Se trata de progID con versiones 6 y 8, respectivamente. Si tiene una aplicación en paralelo, es decir, una que admite varias versiones de la aplicación instaladas al mismo tiempo, use CurVer y Version Independent ProgIDs. De lo contrario, se deben evitar curver y los progID independientes de la versión porque darán lugar a ineficiencia.

Cómo registrar un tipo de archivo para una nueva aplicación

Registro de aplicaciones

Tipos de archivo

Cómo funcionan las asociaciones de archivos

Vista de contenido por tipo de archivo o tipo

Comprobador de tipos de archivo

Controladores de tipos de archivo

Tipos percibidos

Matrices de asociación