Condividi tramite


StartupTask Classe

Definizione

Rappresenta un'app UWP o un'attività in background dell'applicazione desktop eseguita all'avvio del sistema o quando l'utente accede al 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
Ereditarietà
Object Platform::Object IInspectable StartupTask
Attributi

Requisiti Windows

Famiglia di dispositivi
Windows Desktop Extension SDK (è stato introdotto in 10.0.14393.0)
API contract
Windows.ApplicationModel.StartupTaskContract (è stato introdotto in v1.0)

Commenti

Questa funzionalità è supportata nelle versioni desktop di Windows in applicazioni UWP e desktop in un pacchetto di app Windows. Per altre informazioni sulle applicazioni desktop in pacchetto (note anche come app Desktop Bridge), vedere Pacchetti di applicazioni desktop. Il supporto per le applicazioni desktop in pacchetto è stato introdotto nell'aggiornamento Windows 10 anniversario (versione 1607) e per le app UWP nel Windows 10 Fall Creators Update (versione 1709).

Un'app deve aggiungere la categoria di estensione al manifesto del windows.startup pacchetto dell'app per essere attivata all'avvio o quando l'utente accede. L'aggiunta di questa estensione non comporterà automaticamente l'avvio dell'app.

Le app UWP devono chiamare RequestEnableAsync da un thread dell'interfaccia utente per attivare una finestra di dialogo di consenso utente. Se l'utente ha il consenso, l'app UWP inizierà quindi all'avvio o all'accesso dell'utente. Si noti che le app di avvio UWP inizieranno a ridurre al minimo.

Se RequestEnableAsync viene chiamato da un'app desktop in pacchetto, non viene visualizzata alcuna finestra di dialogo di consenso utente. Le app desktop possono impostare le attività di avvio su Abilitato nel manifesto, in tal caso non devono chiamare RequestEnableAsync.

In entrambi i casi, per abilitare la funzionalità di avvio, l'utente deve avviare l'app almeno una volta oppure deve abilitare la funzionalità di avvio per l'app nella pagina Di avvio in Impostazioni. Dopo aver abilitato, l'utente è in controllo e può modificare lo stato abilitato dell'app in qualsiasi momento tramite la pagina Di avvio in Impostazioni o la scheda Avvio in Gestione attività.

La dichiarazione di estensione seguente viene inserita nel manifesto del pacchetto dell'app. La dichiarazione usata dipende dal fatto che l'attività di avvio sia un'attività in background dell'app UWP o dell'app desktop.

Estensione dell'attività di avvio dell'app desktop in pacchetto

<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>
Attributo Descrizione
xmlns:uap5 Specifica lo spazio dei nomi generale del contratto UAP versione 5.

Nota: per l'aggiornamento Fall Creators (versione di Windows 1703) usare invece xmlns:desktop="http://schemas.microsoft.com/appx/manifest/desktop/windows10", lo spazio dei nomi XML specifico di Windows Desktop e sostituire le occorrenze di uap5: con desktop: nell'esempio precedente.
Categoria Deve avere il valore "windows.startupTask".
File eseguibile Percorso relativo dell'.exe da avviare.
EntryPoint Deve avere il valore "Windows.FullTrustApplication".
TaskId Identificatore univoco per la tua attività. Usando questo identificatore, l'app può chiamare le API in questa classe per abilitare o disabilitare un'attività di avvio a livello di codice.
Enabled Può essere impostato su true per le app desktop in pacchetto per indicare che l'app è abilitata per l'avvio senza prima dover chiamare RequestEnableAsync.
DisplayName Nome dell'attività che viene visualizzata in Gestione attività.

Per le app desktop in pacchetto, sono consentite più estensioni startupTask e ognuna può specificare un eseguibile diverso.

Estensione dell'attività di avvio app 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>
Attributo Descrizione
xmlns:uap5 Le app UWP usano lo spazio dei nomi generale del contratto UAP versione 5.
Categoria Deve avere il valore "windows.startupTask"
TaskId Identificatore univoco per l'attività. Usando questo identificatore, l'app può chiamare le API in questa classe per abilitare o disabilitare un'attività di avvio a livello di codice.
Enabled Per le app UWP, questo attributo viene ignorato e la funzionalità viene disabilitata in modo implicito finché l'utente avvia prima l'app e l'utente conferma la richiesta dell'app per abilitare l'attivazione all'avvio.
DisplayName Nome dell'app UWP visualizzata in Gestione attività.
File eseguibile Ignorato. Se specificato, non può essere vuoto o Null. L'app che appartiene al file Package.appxmanifest è l'eseguibile implicito.
EntryPoint Ignorato. Se specificato, non può essere vuoto o Null. Il punto di ingresso è implicito.

Le app UWP devono avere una sola voce eseguibile e un'estensione windows.startupTask .
L'estensione windows.startupTask è disponibile solo per le app UWP eseguite in Windows Desktop.

Estensione dell'attività di avvio di 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>
Attributo Descrizione
xmlns:uap5 Le app UWP usano lo spazio dei nomi generale del contratto UAP versione 5.
StartPage Nome della pagina da visualizzare all'avvio della WWA.
Categoria Deve avere il valore "windows.startupTask"
TaskId Identificatore univoco per l'attività. Usando questo identificatore, l'app può chiamare le API in questa classe per abilitare o disabilitare un'attività di avvio a livello di codice.
DisplayName Nome dell'app UWP visualizzata in Gestione attività.

Per le app WWA, eseguibili, EntryPoint e Abilita vengono ignorate e potrebbero essere mancanti o null.

Esempio

Il codice seguente crea un 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;
}

Proprietà

State

Ottiene lo stato (abilitato, disabilitato o disabilitato dall'utente) dell'attività di avvio.

TaskId

Ottiene l'ID dell'attività di avvio.

Metodi

Disable()

Disabilita l'attività di avvio.

GetAsync(String)

Ottiene un'attività di avvio in base all'ID.

GetForCurrentPackageAsync()

Ottiene tutte le attività di avvio per il pacchetto dell'app corrente.

RequestEnableAsync()

Richiede che l'attività di avvio sia abilitata. Se l'attività è stata disabilitata dall'utente tramite Gestione attività, questo metodo non eseguirà l'override della propria scelta e l'utente deve riabilitare l'attività manualmente.

Si applica a

Vedi anche