问题描述
系统特性
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");
关闭计算机。