Как вывести UWP-приложение из фонового (свернутого режима) на передний план программно?

#c# #uwp

#c# #uwp

Вопрос:

Я перепробовал множество вариантов, чтобы программно вывести приложение UWP из свернутого режима на передний план (поверх всех запущенных приложений), но ничего не получилось: (, вот варианты, которые я пытался сделать так же, как показано ниже:-

1: код: — ожидает Windows.Система.Лаунчер.LaunchUriAsync(новый Uri(«yourprotocolhere://»));`

оно запускается, но не может вывести на передний план, но заставляет приложение мигать на панели задач.

2 кода: — защищенное переопределение аннулируется при активации (IActivatedEventArgs args) { if (args.Вид == ActivationKind.Протокол) { ProtocolActivatedEventArgs EventArgs = аргументы как ProtocolActivatedEventArgs;

                 // Get the root frame
                Frame rootFrame = Window.Current.Content as Frame;

                // Do not repeat app initialization when the Window already has content,
                // just ensure that the window is active
                if (rootFrame == null)
                {
                    // Create a Frame to act as the navigation context and navigate to the first page
                    rootFrame = new Frame();

                    rootFrame.NavigationFailed  = OnNavigationFailed;

                    if (args.PreviousExecutionState == ApplicationExecutionState.Terminated)
                    {
                        //TODO: Load state from previously suspended application
                    }
                    // Place the frame in the current Window
                    Window.Current.Content = rootFrame;
                }
                rootFrame.Navigate(typeof(AppRootContainer));
            }
            // Ensure the current window is active
            Window.Current.Activate();
        }
  

Результат такой же, как и выше.

3: Я даже пытался использовать расширение для рабочего стола с ограниченными возможностями «runFullTrust» для запуска / вывода приложения на передний план, но все еще безуспешно..

Кто-нибудь может помочь мне достичь того же или хочет знать, возможно ли это в UWP (вывести приложение перед экраном, если приложение было свернуто или скрыто за другими приложениями автоматически)?

Любая помощь была бы очень признательна.

Заранее спасибо.

Комментарии:

1. Я также использовал ExtendedExecutionSession, чтобы приложение не переходило в приостановленный режим 🙂

Ответ №1:

Я даже пытался использовать расширение для рабочего стола с ограниченными возможностями «runFullTrust» для запуска / вывода приложения на передний план, но все еще безуспешно

Приведенный выше поток верен, мы могли бы получить записи текущего приложения, а затем вызвать LaunchAsync метод для запуска приложения UWP в расширении desktop.

 IEnumerable<AppListEntry> appListEntries = await Package.Current.GetAppListEntriesAsync();
await appListEntries.First().LaunchAsync();
  

Для получения более подробной информации, пожалуйста, ознакомьтесь с блогом Стефана о регистрации глобальных горячих клавиш в UWP.

Комментарии:

1. Пробовал это с расширением desktop, все еще приложение мигает на панели задач, не появляясь на переднем плане : (

2. Да, оно отображается на переднем плане при условии, что не открывается другое приложение (отображается рабочий стол), но если одно или несколько приложений находятся на переднем плане, то мое приложение, мигающее на панели задач, не отображается на переднем плане.

3. Для моего тестирования оно могло выйти на передний план, даже если другие приложения были на переднем плане.

4. Поскольку я знаю, что оно выходит на передний план, я когда-то делал это со мной, но когда мы открываем приложение, имеющее текстовое поле ввода, и фокусируемся на нем, это означает щелчок хотя бы один раз в текстовом поле ввода, это условие, когда приложение не выходит на передний план.

5. @manigupta. Я протестировал приведенный выше сценарий, и appListEntries.First().LaunchAsync() все еще работает хорошо, не могли бы вы протестировать на другом компьютере, чтобы исключить системную проблему?