基于 C++ 的 UWP 应用中缺少关机管理器类

Missing ShutdownManager class in C++ based UWP app?

本文关键字:关机 管理器 C++ UWP 应用 基于      更新时间:2023-10-16

我目前正在玩Windows IoT Core,我正在尝试为Raspberry Pi 3b开发一个基于C++的UWP应用程序。我想从应用程序内部重新启动/关闭 Pi,但我不确定如何做到这一点。

UWP API 参考列出了对应于 C++ Windows::System 的 C# Windows.System。但似乎并非所有课程都C++可用。UWP 示例 (C#( 利用 ShutdownManager 类进行重启和关机,但它不存在于 C++ 命名空间中。现在我不确定我应该如何利用 API 实现此功能。还有其他可能性可以为C++解决这个问题吗?

溶液:我错过了UWP的Windows IoT Extensions。这些必须在Visual Studio中手动添加,方法是右键单击项目,然后添加->引用->通用Windows->扩展。现在我可以访问命名空间,并能够重新启动和关闭我的设备。

但似乎并非所有课程都C++可用。

这是否意味着当你生成 C++ UWP 项目时,它无法成功生成,或者当你在设备上运行应用时,出现异常?

ShutdownManager API 在 C++ 中可用,实际上它包含在 Windows::System 命名空间中,请参阅此文档。请注意:

此 API 需要使用 IoT 系统管理功能,并且 将 IoT 包含在 IgnorableNamespaces 列表中。用户可以添加 将以下内容添加到他们的 Package.appmanifest: ,并将 IoT 添加到其现有的 可忽略命名空间。

以下代码在我的设备上工作正常。

TimeSpan ts;
ts.Duration = 1000;
ShutdownManager::BeginShutdown(ShutdownKind::Shutdown, ts);