【问题标题】:Intercepting Alt+F4 in UAP在 UAP 中拦截 Alt+F4
【发布时间】:2015-09-22 23:31:18
【问题描述】:

我正在编写一个 UAP C#/XAML 应用程序,目前我对用户在桌面环境中运行我的应用程序的情况感兴趣(当键盘和鼠标可用时,机器正在运行某些版本的 Windows 10不是 Windows 10 移动版)。

我想拦截 ALT+F4 以便在用户退出之前询问一些重要问题,例如在记事本中 - 当您有未保存的文件并且记事本通知您这一事实并询问您是否要保存您的工作,不保存就退出,或者继续处理您的文件。

在 Windows 10 UAP 中是否可能出现这种行为?我尝试使用 Application.Suspending 事件和 ExtendedExecutionSession,但似乎在触发此事件之前 GUI 线程已死,我在此事件的处理程序中所能做的只是不需要用户交互的操作。

【问题讨论】:

    标签: winrt-xaml win-universal-app


    【解决方案1】:

    没有办法拦截和停止这样的事件。

    当您的应用被告知它在关闭事件(alt+f4,交叉点击)后暂停时,您有 10 秒(在桌面上)在完全终止之前清除并保存状态。

    对于通用应用程序,您不需要询问它们是否保存的对话框,只需保存状态,以便下次重新打开时将视图刷新到以前的状态,或者,想想邮件客户端,将他们的输入保存为草稿。但是,关于 Microsoft 的指导是,如果用户关闭您的应用,假设他们希望您离开,因此不要恢复状态。

    对于一些额外处理,您唯一可以做的就是要求操作系统延长执行时间,但这不能保证,即使授予也可以在 1 秒通知终止的情况下撤销。请务必注意,即使授予了扩展执行权限,您的应用也不允许使用任何 UI。

    有关 Windows 10 通用应用程序生命周期的更多信息,我建议您观看 Microsoft Virtual Academy 上的Application Lifecycle 会议。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多