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에서 지원됩니다. 패키지된 데스크톱 애플리케이션(데스크톱 브리지 앱이라고도 함)에 대한 자세한 내용은 패키지 데스크톱 애플리케이션을 참조하세요. 패키지된 데스크톱 애플리케이션에 대한 지원은 Windows 10 1주년 업데이트(버전 1607) 및 Windows 10 Fall Creators Update UWP 앱(버전 1709)에 도입되었습니다.
앱은 windows.startup
시작 시 또는 사용자가 로그인할 때 활성화하려면 앱 패키지 매니페스트에 확장 범주를 추가해야 합니다. 이 확장을 추가해도 앱이 자동으로 시작되지는 않습니다.
UWP 앱은 UI 스레드에서 RequestEnableAsync 를 호출하여 사용자 동의 대화 상자를 트리거해야 합니다. 사용자가 동의하면 UWP 앱은 시작 또는 사용자 로그인 시 시작됩니다. UWP 시작 앱이 최소화되어 시작됩니다.
패키지된 데스크톱 앱에서 RequestEnableAsync 가 호출되면 사용자 동의 대화 상자가 표시되지 않습니다. 데스크톱 앱은 매니페스트에서 시작 작업을 사용으로 설정할 수 있습니다. 이 경우 RequestEnableAsync를 호출할 필요가 없습니다.
두 경우 모두 시작 기능을 사용하도록 설정하려면 사용자가 앱을 한 번 이상 시작하거나 설정의 시작 페이지에서 앱에 대한 시작 기능을 사용하도록 설정해야 합니다. 사용하도록 설정되면 사용자가 제어할 수 있으며 설정의 시작 페이지 또는 작업 관리자의 시작 탭을 통해 언제든지 앱의 사용 상태를 변경할 수 있습니다.
다음 확장 선언은 앱 패키지 매니페스트에 표시됩니다. 사용하는 선언은 시작 작업이 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>
attribute | 설명 |
---|---|
xmlns:uap5 | 일반 UAP 계약 버전 5 네임스페이스를 지정합니다. 참고: Fall Creators 업데이트(Windows 버전 1703)의 경우 Windows Desktop 특정 XML 네임스페이스를 대신 xmlns:desktop="http://schemas.microsoft.com/appx/manifest/desktop/windows10", 사용하고 위 예제에서 의 uap5: 항목을 로 desktop: 바꿉니다. |
범주 | 값 "windows.startupTask" 이 이어야 합니다. |
실행 파일 | 시작할 .exe 상대 경로입니다. |
EntryPoint | 값 "Windows.FullTrustApplication" 이 이어야 합니다. |
TaskId | 작업의 고유 식별자입니다. 앱은 이 식별자를 사용하여 이 클래스의 API를 호출하여 프로그래밍 방식으로 시작 작업을 사용하거나 사용하지 않도록 설정할 수 있습니다. |
Enabled | 먼저 RequestEnableAsync를 true 호출할 필요 없이 앱이 시작되도록 설정되어 있음을 나타내기 위해 패키징된 데스크톱 앱에 대해 로 설정할 수 있습니다. |
표시 이름 | 작업 관리자에 표시되는 작업의 이름입니다. |
패키지된 데스크톱 앱의 경우 여러 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>
attribute | 설명 |
---|---|
xmlns:uap5 | UWP 앱은 일반 UAP 계약 버전 5 네임스페이스를 사용합니다. |
범주 | 값이 있어야 합니다. "windows.startupTask" |
TaskId | 작업에 대한 고유 식별자입니다. 앱은 이 식별자를 사용하여 이 클래스의 API를 호출하여 프로그래밍 방식으로 시작 작업을 사용하거나 사용하지 않도록 설정할 수 있습니다. |
Enabled | UWP 앱의 경우 이 특성은 무시되며 사용자가 앱을 처음 시작하고 사용자가 시작 시 활성화를 사용하도록 설정하는 앱의 요청을 확인할 때까지 기능이 암시적으로 비활성화됩니다. |
표시 이름 | 작업 관리자에 표시되는 UWP 앱의 이름입니다. |
실행 파일 | 무시됩니다. 제공된 경우 비어 있거나 null일 수 없습니다. 이 Package.appxmanifest 파일이 속한 앱은 암시적 실행 파일입니다. |
EntryPoint | 무시됩니다. 제공된 경우 비어 있거나 null일 수 없습니다. 진입점이 암시되어 있습니다. |
UWP 앱에는 하나의 실행 파일 항목과 windows.startupTask 확장만 있어야 합니다.
windows.startupTask 확장은 Windows 데스크톱에서 실행되는 UWP 앱에서만 사용할 수 있습니다.
WWA(Windows Web App) 시작 작업 확장
<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>
attribute | 설명 |
---|---|
xmlns:uap5 | UWP 앱은 일반 UAP 계약 버전 5 네임스페이스를 사용합니다. |
StartPage | WWA가 시작될 때 표시할 페이지의 이름입니다. |
범주 | 값이 있어야 합니다. "windows.startupTask" |
TaskId | 작업에 대한 고유 식별자입니다. 앱은 이 식별자를 사용하여 이 클래스의 API를 호출하여 프로그래밍 방식으로 시작 작업을 사용하거나 사용하지 않도록 설정할 수 있습니다. |
표시 이름 | 작업 관리자에 표시되는 UWP 앱의 이름입니다. |
WWA 앱의 경우 실행 파일, EntryPoint 및 Enables 는 무시되며 누락되거나 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() |
시작 작업을 사용하도록 요청합니다. 작업 관리자를 사용하여 사용자가 작업을 사용하지 않도록 설정한 경우 이 메서드는 선택한 작업을 재정의하지 않으며 사용자가 작업을 수동으로 다시 사용하도록 설정해야 합니다. |