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


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

Начиная с 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 desktop:ToastNotificationActivation Всплывающие уведомления из классических приложений
StartupTaskActivatedEventArgs desktop:StartupTask Запуск исполняемого файла при входе пользователей в Windows
FileActivatedEventArgs uap:FileTypeAssociation Создайте связь между упакованным приложением и некоторыми типами файлов.
VoiceCommandActivatedEventArgs нет Активация приложения переднего плана с помощью голосовых команд с помощью Кортаны
LaunchActivatedEventArgs Нет