StartupTask クラス
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
システムの起動時またはユーザーがデバイスにログインするときに実行される UWP アプリまたはデスクトップ アプリケーションのバックグラウンド タスクを表します。
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
- 継承
- 属性
Windows の要件
デバイス ファミリ |
Windows Desktop Extension SDK (10.0.14393.0 で導入)
|
API contract |
Windows.ApplicationModel.StartupTaskContract (v1.0 で導入)
|
注釈
この機能は、Windows アプリ パッケージ内の UWP アプリとデスクトップ アプリケーションの両方のデスクトップ バージョンの Windows でサポートされています。 パッケージ化されたデスクトップ アプリケーション (デスクトップ ブリッジ Apps とも呼ばれます) の詳細については、「デスクトップ アプリケーションのパッケージ化」を参照してください。 パッケージ化されたデスクトップ アプリケーションのサポートは、Windows 10 Anniversary Update (バージョン 1607) と、Windows 10 Fall Creators Updateの UWP アプリ (バージョン 1709) で導入されました。
起動時またはユーザーが windows.startup
ログインしたときにアクティブ化するには、アプリで拡張機能カテゴリをアプリ パッケージ マニフェストに追加する必要があります。 この拡張機能を追加しても、それ自体が自動的にアプリを起動することはありません。
UWP アプリは、ユーザーの同意ダイアログをトリガーするために、UI スレッドから RequestEnableAsync を呼び出す必要があります。 ユーザーが同意すると、UWP アプリは起動時またはユーザー ログイン時に開始されます。 UWP スタートアップ アプリは最小化されて開始されることに注意してください。
パッケージ化されたデスクトップ アプリから RequestEnableAsync が呼び出された場合、ユーザーの同意ダイアログは表示されません。 デスクトップ アプリは、マニフェストでスタートアップ タスクを Enabled に設定できます。この場合、 RequestEnableAsync を呼び出す必要はありません。
どちらの場合も、スタートアップ機能を有効にするには、ユーザーがアプリを少なくとも 1 回起動するか、[設定] の [スタートアップ] ページでアプリのスタートアップ機能を有効にする必要があります。 有効にすると、ユーザーは制御され、[設定] の [スタートアップ] ページまたはタスク マネージャーの [スタートアップ] タブを使用して、アプリの有効な状態をいつでも変更できます。
次の拡張機能宣言は、アプリ パッケージ マニフェストに含まれます。 使用する宣言は、スタートアップ タスクが UWP アプリかデスクトップ アプリのバックグラウンド タスクかによって異なります。
パッケージ デスクトップ アプリのスタートアップ タスク拡張機能
<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>
属性 | 説明 |
---|---|
xmlns:uap5 | 一般的な UAP コントラクト バージョン 5 名前空間を指定します。 注: Fall Creators 更新プログラム (Windows バージョン 1703) では、代わりに Windows デスクトップ固有の XML 名前空間を使用し、 xmlns:desktop="http://schemas.microsoft.com/appx/manifest/desktop/windows10", 上の例で のuap5: desktop: 出現箇所を に置き換えます。 |
カテゴリ | 値 "windows.startupTask" を指定する必要があります。 |
[実行可能ファイル] | 開始する .exe への相対パス。 |
EntryPoint | 値 "Windows.FullTrustApplication" を指定する必要があります。 |
TaskId | タスクの一意の識別子。 この識別子を使用して、アプリはこのクラスの API を呼び出して、スタートアップ タスクをプログラムで有効または無効にすることができます。 |
有効 | 最初に RequestEnableAsync を呼び出す必要なく、アプリがスタートアップ用に有効になっていることを示すために、パッケージ化されたデスクトップ アプリの場合は を にtrue 設定できます。 |
DisplayName | タスク マネージャーに表示されるタスクの名前。 |
パッケージ化されたデスクトップ アプリの場合、複数の startupTask 拡張機能が許可され、それぞれが異なる実行可能ファイルを指定できます。
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>
属性 | 説明 |
---|---|
xmlns:uap5 | UWP アプリでは、一般的な UAP コントラクト バージョン 5 名前空間が使用されます。 |
カテゴリ | 値を指定する必要があります "windows.startupTask" |
TaskId | タスクの一意識別子。 この識別子を使用して、アプリはこのクラスの API を呼び出して、スタートアップ タスクをプログラムで有効または無効にすることができます。 |
有効 | UWP アプリの場合、この属性は無視され、ユーザーが最初にアプリを起動し、起動時にアクティブ化を有効にするアプリの要求をユーザーが確認するまで、この機能は暗黙的に無効になります。 |
DisplayName | タスク マネージャーに表示される UWP アプリの名前。 |
[実行可能ファイル] | 無視されます。 指定した場合は、空または null にすることはできません。 この Package.appxmanifest ファイルが属するアプリは、暗黙的な実行可能ファイルです。 |
EntryPoint | 無視されます。 指定した場合は、空または null にすることはできません。 エントリ ポイントは暗黙的です。 |
UWP アプリには 、実行可能 ファイル エントリと windows.startupTask 拡張機能を 1 つだけ含める必要があります。
windows.startupTask 拡張機能は、Windows デスクトップで実行される UWP アプリでのみ使用できます。
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>
属性 | 説明 |
---|---|
xmlns:uap5 | UWP アプリでは、一般的な UAP コントラクト バージョン 5 名前空間が使用されます。 |
StartPage | WWA の起動時に表示するページの名前。 |
カテゴリ | 値を指定する必要があります "windows.startupTask" |
TaskId | タスクの一意識別子。 この識別子を使用して、アプリはこのクラスの API を呼び出して、スタートアップ タスクをプログラムで有効または無効にすることができます。 |
DisplayName | タスク マネージャーに表示される UWP アプリの名前。 |
WWA アプリの場合、 実行可能ファイル、 EntryPoint、 および Enable は無視され、見つからないか null である可能性があります。
例
次のコードは 、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;
}
プロパティ
State |
スタートアップ タスクの状態 (ユーザーが有効、無効、または無効) を取得します。 |
TaskId |
スタートアップ タスクの ID を取得します。 |
メソッド
Disable() |
スタートアップ タスクを無効にします。 |
GetAsync(String) |
Id でスタートアップ タスクを取得します。 |
GetForCurrentPackageAsync() |
現在のアプリ パッケージのすべてのスタートアップ タスクを取得します。 |
RequestEnableAsync() |
スタートアップ タスクを有効にすることを要求します。 タスク マネージャーを使用してユーザーがタスクを無効にした場合、このメソッドは選択をオーバーライドせず、ユーザーは手動でタスクを再度有効にする必要があります。 |