StartupTask Clase

Definición

Representa una aplicación para UWP o una tarea en segundo plano de la aplicación de escritorio que se ejecuta al inicio del sistema o cuando el usuario inicia sesión en su dispositivo.

public ref class StartupTask sealed
/// [Windows.Foundation.Metadata.ContractVersion(Windows.ApplicationModel.StartupTaskContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
class StartupTask final
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.ApplicationModel.StartupTaskContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
public sealed class StartupTask
Public NotInheritable Class StartupTask
Herencia
Object Platform::Object IInspectable StartupTask
Atributos

Requisitos de Windows

Familia de dispositivos
Windows Desktop Extension SDK (se introdujo en la versión 10.0.14393.0)
API contract
Windows.ApplicationModel.StartupTaskContract (se introdujo en la versión v1.0)

Comentarios

Esta funcionalidad es compatible con las versiones de escritorio de Windows tanto en aplicaciones para UWP como en aplicaciones de escritorio en un paquete de aplicación de Windows. Para obtener más información sobre las aplicaciones de escritorio empaquetadas (también conocidas como aplicaciones Puente de dispositivo de escritorio), consulte Empaquetar aplicaciones de escritorio. La compatibilidad con aplicaciones de escritorio empaquetadas se introdujo en la Actualización de aniversario de Windows 10 (versión 1607) y para aplicaciones para UWP en el Windows 10 Fall Creators Update (versión 1709).

Una aplicación debe agregar la categoría de windows.startup extensión a su manifiesto de paquete de aplicación para activarse al iniciarse o cuando el usuario inicie sesión. Al agregar esta extensión, no se iniciará automáticamente la aplicación.

Las aplicaciones para UWP deben llamar a RequestEnableAsync desde un subproceso de interfaz de usuario para desencadenar un cuadro de diálogo de consentimiento del usuario. Si el usuario da su consentimiento, la aplicación para UWP se iniciará en el inicio o el inicio de sesión del usuario. Ten en cuenta que las aplicaciones de inicio de UWP se iniciarán minimizadas.

Si se llama a RequestEnableAsync desde una aplicación de escritorio empaquetada, no se muestra ningún cuadro de diálogo de consentimiento del usuario. Las aplicaciones de escritorio pueden establecer sus tareas de inicio en Habilitado en el manifiesto, en cuyo caso no necesitan llamar a RequestEnableAsync.

En ambos casos, para habilitar la funcionalidad de inicio, el usuario debe iniciar la aplicación al menos una vez, o bien debe habilitar la funcionalidad de inicio de la aplicación en la página Inicio de Configuración. Una vez habilitado, el usuario está en control y puede cambiar el estado habilitado de la aplicación en cualquier momento a través de la página Inicio en Configuración o la pestaña Inicio del Administrador de tareas.

La siguiente declaración de extensión se incluye en el manifiesto del paquete de la aplicación. La declaración que usas depende de si la tarea de inicio será una aplicación para UWP o una tarea en segundo plano de la aplicación de escritorio.

Extensión de tarea de inicio de la aplicación de escritorio empaquetada

<Package xmlns:uap5="http://schemas.microsoft.com/appx/manifest/uap/windows10/5"...>
...
<Applications>
    <Application ...>
        ...
        <Extensions>
          <uap5:Extension
            Category="windows.startupTask"
            Executable="MyDesktopApp.exe"
            EntryPoint="Windows.FullTrustApplication">
            <uap5:StartupTask
              TaskId="MyStartupId"
              Enabled="false"
              DisplayName="My Desktop App" />
          </uap5:Extension>
        </Extensions>
    </Application>
</Applications>
Atributo Descripción
xmlns:uap5 Especifica el espacio de nombres de la versión 5 del contrato UAP general.

Nota: para Fall Creators Update (windows versión 1703) usa el espacio de nombres XML específico de Escritorio de Windows en su lugar xmlns:desktop="http://schemas.microsoft.com/appx/manifest/desktop/windows10", y reemplaza las repeticiones de uap5: por desktop: en el ejemplo anterior.
Categoría Debe tener el valor "windows.startupTask".
Executable Ruta de acceso relativa al .exe que se va a iniciar.
EntryPoint Debe tener el valor "Windows.FullTrustApplication".
TaskId Identificador único de la tarea. Con este identificador, la aplicación puede llamar a las API de esta clase para habilitar o deshabilitar mediante programación una tarea de inicio.
Enabled Puede establecerse true en para las aplicaciones de escritorio empaquetadas para indicar que la aplicación está habilitada para el inicio sin necesidad de llamar primero a RequestEnableAsync.
DisplayName Nombre de la tarea que aparece en el Administrador de tareas.

En el caso de las aplicaciones de escritorio empaquetadas, se permiten varias extensiones startupTask y cada una de ellas puede especificar un archivo ejecutable diferente.

Extensión de tarea de inicio de la aplicación para UWP

<Package xmlns:uap5="http://schemas.microsoft.com/appx/manifest/uap/windows10/5" ...>
...
<Applications>
    <Application ...>
        ...
        <Extensions>
          <uap5:Extension Category="windows.startupTask">
            <uap5:StartupTask
              TaskId="MyStartupId"
              Enabled="false"
              DisplayName="Test startup" />
          </uap5:Extension>
      </Extensions>
    </Application>
</Applications>
Atributo Descripción
xmlns:uap5 Las aplicaciones para UWP usan el espacio de nombres UAP general versión 5 del contrato.
Categoría Debe tener el valor "windows.startupTask"
TaskId Identificador único de la tarea. Con este identificador, la aplicación puede llamar a las API de esta clase para habilitar o deshabilitar mediante programación una tarea de inicio.
Enabled En el caso de las aplicaciones para UWP, este atributo se omite y la característica se deshabilita implícitamente hasta que el usuario inicia por primera vez la aplicación y el usuario confirma la solicitud de la aplicación para habilitar la activación en el inicio.
DisplayName Nombre de la aplicación para UWP que aparece en el Administrador de tareas.
Executable ignorado. Si se proporciona, no puede estar vacío o nulo. La aplicación a la que pertenece este archivo Package.appxmanifest es el ejecutable implícito.
EntryPoint ignorado. Si se proporciona, no puede estar vacío o nulo. El punto de entrada está implícito.

Las aplicaciones para UWP solo deben tener una entrada ejecutable y la extensión windows.startupTask .
La extensión windows.startupTask solo está disponible para las aplicaciones para UWP que se ejecutan en el escritorio de Windows.

Extensión de tarea de inicio de Windows Web App (WWA)

<Package xmlns:uap5="http://schemas.microsoft.com/appx/manifest/uap/windows10/5" .m..>
...
<Applications>
    <Application ...>
        ...
        <Extensions>
          <uap5:Extension Category="windows.startupTask" StartPage="EntryPage">
            <uap5:StartupTask
              TaskId="MyStartupId"
              DisplayName="Test startup"/>
          </uap5:Extension>
      </Extensions>
    </Application>
</Applications>
Atributo Descripción
xmlns:uap5 Las aplicaciones para UWP usan el espacio de nombres UAP general versión 5 del contrato.
StartPage Nombre de la página que se va a mostrar cuando se inicia la WWA.
Categoría Debe tener el valor "windows.startupTask"
TaskId Identificador único de la tarea. Con este identificador, la aplicación puede llamar a las API de esta clase para habilitar o deshabilitar mediante programación una tarea de inicio.
DisplayName Nombre de la aplicación para UWP que aparece en el Administrador de tareas.

En el caso de las aplicaciones WWA, Ejecutable, EntryPoint y Habilita se omiten y pueden faltar o ser null.

Ejemplo

El código siguiente crea un objeto StartupTask:

StartupTask startupTask = await StartupTask.GetAsync("MyStartupId"); // Pass the task ID you specified in the appxmanifest file
switch (startupTask.State)
{
    case StartupTaskState.Disabled:
        // Task is disabled but can be enabled.
        StartupTaskState newState = await startupTask.RequestEnableAsync(); // ensure that you are on a UI thread when you call RequestEnableAsync()
        Debug.WriteLine("Request to enable startup, result = {0}", newState);
        break;
    case StartupTaskState.DisabledByUser:
        // Task is disabled and user must enable it manually.
        MessageDialog dialog = new MessageDialog(
            "You have disabled this app's ability to run " +
            "as soon as you sign in, but if you change your mind, " +
            "you can enable this in the Startup tab in Task Manager.",
            "TestStartup");
        await dialog.ShowAsync();
        break;
    case StartupTaskState.DisabledByPolicy:
        Debug.WriteLine("Startup disabled by group policy, or not supported on this device");
        break;
    case StartupTaskState.Enabled:
        Debug.WriteLine("Startup is enabled.");
        break;
}

Propiedades

State

Obtiene el estado (habilitado, deshabilitado o deshabilitado por el usuario) de la tarea de inicio.

TaskId

Obtiene el identificador de la tarea de inicio.

Métodos

Disable()

Deshabilita la tarea de inicio.

GetAsync(String)

Obtiene una tarea de inicio por id.

GetForCurrentPackageAsync()

Obtiene todas las tareas de inicio del paquete de aplicación actual.

RequestEnableAsync()

Solicita que se habilite la tarea de inicio. Si el usuario deshabilitó la tarea mediante el Administrador de tareas, este método no invalidará su elección y el usuario debe volver a habilitarla manualmente.

Se aplica a

Consulte también