Compartir a través de


Administrar la activación de archivos

API importantes

La aplicación puede registrarse para convertirse en el controlador predeterminado para un tipo de archivo determinado. Tanto las aplicaciones de escritorio de Windows como las aplicaciones de Plataforma universal de Windows (UWP) se pueden registrar para que sean un controlador de archivos predeterminado. Si el usuario elige la aplicación como controlador predeterminado para un tipo de archivo determinado, la aplicación se activará cuando se inicie ese tipo de archivo.

Se recomienda que solo se registre para un tipo de archivo si espera controlar todos los inicios de archivos para ese tipo de archivo. Si la aplicación solo necesita usar el tipo de archivo internamente, no es necesario registrarse para que sea el controlador predeterminado. Si decide registrarse para un tipo de archivo, debe proporcionar al usuario final la funcionalidad que se espera cuando la aplicación esté activada para ese tipo de archivo. Por ejemplo, una aplicación de visor de imágenes puede registrarse para mostrar un archivo .jpg. Para obtener más información sobre las asociaciones de archivos, consulta Directrices para tipos de archivo y URI.

Estos pasos muestran cómo registrarse para un tipo de archivo personalizado, .alsdk y cómo activar la aplicación cuando el usuario inicia un archivo .alsdk.

Nota En las aplicaciones para UWP, ciertos URI y extensiones de archivo están reservadas para su uso por parte de aplicaciones integradas y el sistema operativo. Se omitirán los intentos de registrar la aplicación con un URI reservado o una extensión de archivo. Para obtener más información, consulte Nombres de esquema de archivo y URI reservados.

Paso 1: Especificar el punto de extensión en el manifiesto del paquete

La aplicación recibe eventos de activación solo para las extensiones de archivo enumeradas en el manifiesto del paquete. Este es el modo en que indica que la aplicación controla los archivos con la .alsdk extensión .

  1. En el Explorador de soluciones, haga doble clic en package.appxmanifest para abrir el diseñador de manifiestos. Seleccione la pestaña Declaraciones y, en la lista desplegable Declaraciones disponibles, seleccione Asociaciones de tipo de archivo y, a continuación, haga clic en Agregar. Consulte Identificadores de programación para obtener más detalles sobre los identificadores usados por las asociaciones de archivos.

    Esta es una breve descripción de cada uno de los campos que puede rellenar el diseñador de manifiestos:

Campo Description
Nombre para mostrar Especifique el nombre para mostrar de un grupo de tipos de archivo. El nombre para mostrar se usa para identificar el tipo de archivo en el Panel de control Establecer programas predeterminados.
Logotipo Especifique el logotipo que se usa para identificar el tipo de archivo en el escritorio y en establecer programas predeterminados en el Panel de control. Si no se especifica ningún logotipo, se usa el logotipo pequeño de la aplicación.
Sugerencia de información Especifique la sugerencia de información para un grupo de tipos de archivo. Este texto de información sobre herramientas aparece cuando el usuario mantiene el puntero sobre el icono de un archivo de este tipo.
Nombre Elija un nombre para un grupo de tipos de archivo que compartan el mismo nombre para mostrar, logotipo, sugerencia de información y marcas de edición. Elija un nombre de grupo que pueda permanecer igual en todas las actualizaciones de la aplicación. Nota El nombre debe estar en minúsculas.
Tipo de contenido Especifique el tipo de contenido MIME, como image/jpeg, para un tipo de archivo determinado. Nota importante sobre los tipos de contenido permitidos: esta es una lista alfabética de tipos de contenido MIME que no se pueden escribir en el manifiesto del paquete porque están reservados o prohibidos: application/force-download, application/octet-stream, application/unknown, application/x-msdownload.
Tipo de archivo Especifique el tipo de archivo para el que se va a registrar, precedido por un punto, por ejemplo, ".jpeg". Tipos de archivo reservados y prohibidos: consulta Nombres de esquema de URI reservados y tipos de archivo para obtener una lista alfabética de tipos de archivo para aplicaciones integradas que no puedes registrar para tus aplicaciones para UWP porque están reservadas o prohibidas.
  1. Escriba alsdk como el Nombre.
  2. Escriba .alsdk como tipo de archivo.
  3. Escriba "images\Icon.png" como logotipo.
  4. Presione Ctrl+S para guardar el cambio en package.appxmanifest.

Los pasos anteriores agregan un elemento Extension como este al manifiesto del paquete. La categoría windows.fileTypeAssociation indica que la aplicación controla los archivos con la .alsdk extensión .

      <Extensions>
        <uap:Extension Category="windows.fileTypeAssociation">
          <uap:FileTypeAssociation Name="alsdk">
            <uap:Logo>images\icon.png</uap:Logo>
            <uap:SupportedFileTypes>
              <uap:FileType>.alsdk</uap:FileType>
            </uap:SupportedFileTypes>
          </uap:FileTypeAssociation>
        </uap:Extension>
      </Extensions>

Paso 2: Agregar los iconos adecuados

Las aplicaciones que se convierten en el valor predeterminado de un tipo de archivo tienen sus iconos mostrados en varios lugares del sistema. Por ejemplo, estos iconos se muestran en:

  • Vista de elementos del Explorador de Windows, menús contextuales y la cinta de opciones
  • Panel de control de programas predeterminados
  • Selector de archivos
  • Resultados de la búsqueda en la pantalla Inicio

Incluya un icono de 44 x 44 con el proyecto para que el logotipo pueda aparecer en esas ubicaciones. Coincide con el aspecto del logotipo del icono de la aplicación y usa el color de fondo de la aplicación en lugar de hacer que el icono sea transparente. Haga que el logotipo se extienda al borde sin rellenarlo. Pruebe los iconos en fondos blancos. Consulte Directrices para los recursos de icono e icono para obtener más información sobre los iconos.

Paso 3: Controlar el evento activado

El controlador de eventos OnFileActivated recibe todos los eventos de activación de archivos.

protected override void OnFileActivated(FileActivatedEventArgs args)
{
       // TODO: Handle file activation
       // The number of files received is args.Files.Count
       // The name of the first file is args.Files[0].Name
}
Protected Overrides Sub OnFileActivated(ByVal args As Windows.ApplicationModel.Activation.FileActivatedEventArgs)
      ' TODO: Handle file activation
      ' The number of files received is args.Files.Size
      ' The name of the first file is args.Files(0).Name
End Sub
void App::OnFileActivated(Windows::ApplicationModel::Activation::FileActivatedEventArgs const& args)
{
    // TODO: Handle file activation.
    auto numberOfFilesReceived{ args.Files().Size() };
    auto nameOfTheFirstFile{ args.Files().GetAt(0).Name() };
}
void App::OnFileActivated(Windows::ApplicationModel::Activation::FileActivatedEventArgs^ args)
{
    // TODO: Handle file activation
    // The number of files received is args->Files->Size
    // The name of the first file is args->Files->GetAt(0)->Name
}

Nota:

Cuando se inicia a través del contrato de archivo, asegúrate de que el botón Atrás devuelva al usuario a la pantalla que inició la aplicación y no al contenido anterior de la aplicación.

Te recomendamos crear un nuevo marco XAML para cada evento de activación que abra una nueva página. De este modo, la pila de retroceso de navegación del nuevo marco XAML no contiene ningún contenido anterior que la aplicación pueda tener en la ventana actual cuando se suspenda. Si decides usar un solo marco XAML para Launch y para Contratos de archivo, debes borrar las páginas del diario de navegación de Frame antes de navegar a una nueva página.

Cuando la aplicación se inicia a través de la activación de archivos, debes considerar la posibilidad de incluir la interfaz de usuario que permite al usuario volver a la página superior de la aplicación.

Comentarios

Los archivos que recibe podrían provenir de un origen que no es de confianza. Se recomienda validar el contenido de un archivo antes de tomar medidas en él.

Ejemplo completo

Conceptos

Tareas

Instrucciones

Referencia