2015-09-22 3 views
0

Я пишу приложение UAP C#/XAML, пока что меня интересует случай, когда пользователь запускает мое приложение в среде рабочего стола (в случае, когда доступны клавиатура и мышь, машина запуск некоторой версии Windows 10, а не Windows 10 Mobile).Перехват Alt + F4 в UAP

Я хочу перехватить ALT + F4, чтобы задать пользователю несколько важных вопросов, прежде чем они уйдут, например, в блокноте - когда у вас есть несохраненный файл, и блокнот уведомляет вас об этом факте и спрашивает, хотите ли вы сохранить ваша работа, прекратите работу без сохранения или вернитесь к работе с вашим файлом.

Возможно ли такое поведение в Windows 10 UAP? Я пытался играть с событием Application.Suspending и ExtendedExecutionSession, но похоже, что до того, как это событие будет запущено, поток GUI будет мертв, и все, что я могу сделать в обработчике этого события, - это операции, не требующие взаимодействия с пользователем.

ответ

2

Невозможно перехватить и остановить такие события.

К тому времени, когда вашему приложению сообщается, что он приостановлен после закрытия события (alt + f4, cross clicked), у вас есть 10 секунд (на рабочем столе), чтобы очистить и сохранить состояние до того, как вы полностью закончите.

С универсальными приложениями вам не нужно диалоговое окно с просьбой сохранить или нет, просто сохраните состояние, чтобы в следующий раз, когда они снова откроются, вы обновите представление до того, как оно было до этого, или, подумайте, почтовый клиент, сохраните их типизацию как проект. Однако руководство по Microsoft заключается в том, что если пользователь закрывает ваше приложение, предположите, что они хотят, чтобы вы ушли, поэтому не восстанавливайте состояние.

Единственное, что вы можете сделать для некоторой дополнительной обработки, - запросить ОС для расширенного выполнения, хотя это не гарантируется, и даже если предоставлено может быть отменено с уведомлением 1s до завершения. Важно отметить, что даже с расширенным предоставлением вам не разрешен какой-либо пользовательский интерфейс.

Для получения дополнительной информации о жизненном цикле универсального приложения Windows 10 я бы рекомендовал посмотреть сеанс Application Lifecycle в Microsoft Virtual Academy.

Смежные вопросы