UWP - 使用 ShutdownManager 关闭设备

问题描述

系统特性

Windows 10 专业版 1903

说明

我有一个 UWP 应用程序在 Windows 10 专业版平板电脑上以自助服务终端模式运行。我希望应用程序在应用程序流程结束时关闭我的设备。我正在尝试使用

ShutdownManager.BeginShutdown(ShutdownKind.Shutdown,TimeSpan.FromSeconds(5));

正如文档所说,我在我的应用程序清单中添加iot 功能,并在 IgnorableNamespace 字段中添加了 iot 字段。 问题是这段代码关闭了我的应用程序,并没有关闭设备。

正如 ShutdownManager 文档报告的那样:

ShutdownManager.BeginShutdown 关闭固定用途模式运行的设备,并可选择在指定的秒数后重新启动设备。

固定目的模式会不会是问题所在? 还有其他方法可以达到我的目标吗?

提前致谢

解决方法

问题是这段代码只关闭了我的应用程序,而没有关闭设备。

您可以在上面的行中添加调试点,它会抛出异常(访问被拒绝。(Exception from HRESULT: 0x80070005 E_ACCESSDENIED)并使您的应用程序崩溃,它看起来关闭了应用程序。实际上应用程序崩溃了。

BeginShutdown 方法仅适用于物联网设备,例如具有特定物联网操作系统的树莓派。并且它不适用于 Windows 10 Pro 平板电脑,如果您确实想关闭设备,我们建议您使用桌面桥接器为 uwp 应用程序制作桌面扩展并使用 Win32 api Process.Start("shutdown","/s /f /t 0"); 关闭计算机。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...