Получение сведений об активации для упакованных приложений
Начиная с Windows 10 версии 1809, упакованные классические приложения могут вызвать метод AppInstance.GetActivatedEventArgs для получения определенной информации об активации приложения во время запуска. Например, вы можете вызвать этот метод, чтобы получить информацию о событиях, связанных с активацией приложения, таких как открытие файла, нажатие на интерактивное всплывающее уведомление или использование протокола. Начиная с Windows 10, версия 2004, эта функция также поддерживается в упакованных приложениях с внешним расположением (см: Предоставление идентификатора пакета путем упаковки с внешним расположением).
Примечание.
Кроме определенных сведений об активации с помощью метода AppInstance.GetActivatedEventArgs, описанного в этой статье, можно также получить сведения об активации для фоновых задач, определив класс COM. Дополнительные сведения см. в статье Создание и регистрация фоновой задачи COM WinMain.
Пример кода
В следующем примере кода показано, как вызвать метод AppInstance.GetActivatedEventArgs из функции Main в приложении Windows Forms. Для каждого типа активации, поддерживаемого приложением, приведите возвращаемое значение args
к соответствующему типу аргументов события. В этом примере кода предполагается, что методы Handlexxx
представлены в виде выделенного кода обработчика активации, который был определен в другом месте.
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
var args = AppInstance.GetActivatedEventArgs();
switch (args.Kind)
{
case ActivationKind.Launch:
HandleLaunch(args as LaunchActivatedEventArgs);
break;
case ActivationKind.ToastNotification:
HandleToastNotification(args as ToastNotificationActivatedEventArgs);
break;
case ActivationKind.VoiceCommand:
HandleVoiceCommand(args as VoiceCommandActivatedEventArgs);
break;
case ActivationKind.File:
HandleFile(args as FileActivatedEventArgs);
break;
case ActivationKind.Protocol:
HandleProtocol(args as ProtocolActivatedEventArgs);
break;
case ActivationKind.StartupTask:
HandleStartupTask(args as StartupTaskActivatedEventArgs);
break;
default:
HandleLaunch(null);
break;
}
Поддерживаемые типы активации
Метод AppInstance.GetActivatedEventArgs можно использовать для получения сведений об активации из поддерживаемого набора объектов аргументов событий, приведенных в таблице ниже. Для некоторых из этих типов активации требуется использовать расширение пакета в манифесте пакета.
Сведения об активации ShareTargetActivatedEventArgs поддерживаются только в Windows 10 версии 2004 и более поздних версиях. Все остальные типы сведений об активации поддерживаются в Windows 10 версии 1809 и более поздних версиях.
Тип аргументов событий | Расширение пакета | Связанные документы |
---|---|---|
ShareTargetActivatedEventArgs | uap:ShareTarget | Сделать настольное приложение целью обмена |
ProtocolActivatedEventArgs | uap:Protocol | Запуск приложения с использованием протокола |
ToastNotificationActivatedEventArgs | рабочий стол:АктивацияУведомленияToast | Всплывающие уведомления из настольных приложений |
StartupTaskActivatedEventArgs | рабочий стол:Задача автозапуска | Запуск исполняемого файла при входе пользователей в Windows |
FileActivatedEventArgs | uap:FileTypeAssociation | Создайте связь между упакованным приложением и некоторыми типами файлов. |
VoiceCommandActivatedEventArgs | нет | Активация приложения переднего плана с помощью голосовых команд с помощью Кортаны |
LaunchActivatedEventArgs | нет |
Windows developer