【问题标题】:Error code when trying to shutdown using UWP and C#尝试使用 UWP 和 C# 关闭时出现错误代码
【发布时间】:2018-05-12 20:05:48
【问题描述】:

我想调用关机if label1.text == label2.text,但调用Windows.System.ShutdownManager.BeginShutdown(Windows.System.ShutdownKind.Shutdown, TimeSpan.FromSeconds(1));时出现错误。

错误:

System.UnauthorizedAccessException:'Accès refusé. (来自 HRESULT 的异常:0x80070005 (E_ACCESSDENIED))'

【问题讨论】:

  • 没有解决方案,它不适合我,它适合 Windows 商店
  • 您是否在Package.appxmanifest 中设置了该功能?
  • 关机我可以检查什么?

标签: c# uwp


【解决方案1】:
// Shutdowns the device within 1 second:
ShutdownManager.BeginShutdown(ShutdownKind.Shutdown, TimeSpan.FromSeconds(1));

为了让这段代码正常工作,您需要为您的应用提供额外的功能,使用 Visual Studio XML 编辑器 打开 Package.appxmanifest 文件并添加:

<Package
     ...
   <Capabilities>
    ...
     <iot:Capability Name="systemManagement" />
   </Capabilities>
</Package>

如果不设置此能力,调用ShutdownManager方法时会出现UnauthorizedAccessException错误

来自Microsoft docs

此 API 需要使用 IoT 系统管理功能。用户可以将以下内容添加到他们的 Package.appmanifest&lt;iot:Capability Name="systemManagement"/&gt;

【讨论】:

【解决方案2】:

ShutdownManager API 需要使用 IoT systemManagement 功能,并在 IgnorableNamespaces 列表中包含 iot。用户可以将以下内容添加到他们的 Package.appmanifest: 中,并将 iot 添加到他们现有的 IgnorableNamespaces 列表中。

<Package
  xmlns="http://schemas.microsoft.com/appx/manifest/foundation/windows10"
  xmlns:mp="http://schemas.microsoft.com/appx/2014/phone/manifest"
  xmlns:uap="http://schemas.microsoft.com/appx/manifest/uap/windows10"
  xmlns:iot="http://schemas.microsoft.com/appx/manifest/iot/windows10"
  IgnorableNamespaces="uap mp iot">

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-05-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-17
    • 1970-01-01
    相关资源
    最近更新 更多