Поделиться через


Получение сведений об активации для упакованных приложений

Начиная с 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 нет