Partilhar via


StartupTask Classe

Definição

Representa um aplicativo UWP ou uma tarefa em segundo plano de aplicativo da área de trabalho que é executada na inicialização do sistema ou quando o usuário faz logon em seu 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
Herança
Object Platform::Object IInspectable StartupTask
Atributos

Requisitos do Windows

Família de dispositivos
Windows Desktop Extension SDK (introduzida na 10.0.14393.0)
API contract
Windows.ApplicationModel.StartupTaskContract (introduzida na v1.0)

Comentários

Essa funcionalidade tem suporte em versões da área de trabalho do Windows em aplicativos UWP e aplicativos da área de trabalho em um pacote de aplicativos do Windows. Para obter mais informações sobre aplicativos de área de trabalho empacotados (também conhecidos como aplicativos de Ponte de Desktop), consulte Pacote de aplicativos da área de trabalho. O suporte para aplicativos de área de trabalho empacotados foi introduzido na Atualização de Aniversário do Windows 10 (versão 1607) e para aplicativos UWP no Windows 10 Fall Creators Update (versão 1709).

Um aplicativo deve adicionar a windows.startup categoria de extensão ao manifesto do pacote do aplicativo para ser ativado na inicialização ou quando o usuário fizer logon. A adição dessa extensão não fará com que o aplicativo seja iniciado automaticamente.

Os aplicativos UWP devem chamar RequestEnableAsync de um thread de interface do usuário para disparar uma caixa de diálogo de consentimento do usuário. Se o usuário consentir, o aplicativo UWP começará na inicialização ou no logon do usuário. Observe que os aplicativos de inicialização UWP começarão minimizados.

Se RequestEnableAsync for chamado de um aplicativo de área de trabalho empacotado, nenhuma caixa de diálogo de consentimento do usuário será mostrada. Os aplicativos da área de trabalho podem definir suas tarefas de inicialização como Habilitadas no manifesto, nesse caso, eles não precisam chamar RequestEnableAsync.

Em ambos os casos, para habilitar a funcionalidade de inicialização, o usuário deve iniciar o aplicativo pelo menos uma vez ou deve habilitar a funcionalidade de inicialização para o aplicativo na página Inicialização em Configurações. Depois de habilitado, o usuário estará no controle e poderá alterar o estado habilitado do aplicativo a qualquer momento por meio da página Inicialização em Configurações ou da guia Inicialização no Gerenciador de Tarefas.

A declaração de extensão a seguir está no manifesto do pacote do aplicativo. A declaração que você usa depende se sua tarefa de inicialização será uma tarefa em segundo plano de aplicativo UWP ou aplicativo da área de trabalho.

Extensão de tarefa de inicialização de aplicativo da área de trabalho empacotada

<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 Descrição
xmlns:uap5 Especifica o namespace geral do contrato UAP versão 5.

Observação: para a atualização do Fall Creators (versão 1703 do Windows) use o namespace XML específico da Área de Trabalho do Windows e substitua xmlns:desktop="http://schemas.microsoft.com/appx/manifest/desktop/windows10", ocorrências de uap5: por desktop: no exemplo acima.
Categoria Deve ter o valor "windows.startupTask".
Executável O caminho relativo para o .exe a ser iniciado.
EntryPoint Deve ter o valor "Windows.FullTrustApplication".
TaskId Um identificador exclusivo para sua tarefa. Usando esse identificador, seu aplicativo pode chamar as APIs nessa classe para habilitar ou desabilitar programaticamente uma tarefa de inicialização.
Enabled Pode ser definido true como para aplicativos de área de trabalho empacotados para indicar que o aplicativo está habilitado para inicialização sem antes precisar chamar RequestEnableAsync.
DisplayName O nome da tarefa que aparece no Gerenciador de tarefas.

Para aplicativos de área de trabalho empacotados, várias extensões startupTask são permitidas e cada uma pode especificar um executável diferente.

Extensão de tarefa de inicialização de aplicativo 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 Descrição
xmlns:uap5 Os aplicativos UWP usam o namespace geral do contrato UAP versão 5.
Categoria Deve ter o valor "windows.startupTask"
TaskId O identificador exclusivo para sua tarefa. Usando esse identificador, seu aplicativo pode chamar as APIs nessa classe para habilitar ou desabilitar programaticamente uma tarefa de inicialização.
Enabled Para aplicativos UWP, esse atributo é ignorado e o recurso é implicitamente desabilitado até que o usuário inicie o aplicativo pela primeira vez e o usuário confirme a solicitação do aplicativo para habilitar a ativação na inicialização.
DisplayName O nome do aplicativo UWP que aparece no Gerenciador de Tarefas.
Executável Ignorado. Se fornecido, ele não pode ser vazio ou nulo. O aplicativo ao qual este arquivo Package.appxmanifest pertence é o executável implícito.
EntryPoint Ignorado. Se fornecido, ele não pode ser vazio ou nulo. O ponto de entrada está implícito.

Os aplicativos UWP devem ter apenas uma entrada Executável e uma extensão windows.startupTask .
A extensão windows.startupTask só está disponível para aplicativos UWP executados na Área de Trabalho do Windows.

Extensão de tarefa de inicialização do WWA (Aplicativo Web do Windows)

<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 Descrição
xmlns:uap5 Os aplicativos UWP usam o namespace geral do contrato UAP versão 5.
StartPage O nome da página a ser exibida quando o WWA é iniciado.
Categoria Deve ter o valor "windows.startupTask"
TaskId O identificador exclusivo para sua tarefa. Usando esse identificador, seu aplicativo pode chamar as APIs nessa classe para habilitar ou desabilitar programaticamente uma tarefa de inicialização.
DisplayName O nome do aplicativo UWP que aparece no Gerenciador de Tarefas.

Para aplicativos WWA, Executable, EntryPoint e Enables são ignorados e podem estar ausentes ou nulos.

Exemplo

O código a seguir cria um 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;
}

Propriedades

State

Obtém o estado (habilitado, desabilitado ou desabilitado pelo usuário) da tarefa de inicialização.

TaskId

Obtém a ID da tarefa de inicialização.

Métodos

Disable()

Desabilita a tarefa de inicialização.

GetAsync(String)

Obtém uma tarefa de inicialização por Id.

GetForCurrentPackageAsync()

Obtém todas as tarefas de inicialização para o pacote de aplicativo atual.

RequestEnableAsync()

Solicita que a tarefa de inicialização seja habilitada. Se a tarefa tiver sido desabilitada pelo usuário usando o Gerenciador de Tarefas, esse método não substituirá sua escolha e o usuário deverá reabilitar a tarefa manualmente.

Aplica-se a

Confira também