通过 windows 10 uwp 上的代码重新启动

restart via code on windows 10 uwp

我们已经创建了一个 Windows 10 应用程序,它 运行 在 Windows 10 kiosk 模式的平板电脑上运行。它工作得很好,但是,由于位置非常偏远,wifi 连接有时会丢失。我们尝试从网络方面解决此问题,但当设备丢失并重新获得互联网访问权限时,应用程序仍会挂起,就好像它没有互联网访问权限一样显示空白页面。在使用这些设备的地方,它们用螺栓固定在墙上以防止盗窃。这意味着如果我们想要重新启动它非常耗时,因为我们必须从墙上拧下外壳,然后打开外壳才能使用电源按钮,这是让应用程序再次成功进入 运行 的唯一方法是在设备上重新启动。

有人建议我们可以通过应用程序执行重启,但是,我尝试过的每个代码示例在 Windows 10 UWP 中都不起作用。这是我发现的最常见的一种:

System.Diagnostics.Process.Start("restart", "/r");

我可以访问命名空间

System.Diagnostics

但进程 class 不存在。有人对在 Win 10 UWP 上通过代码重启有什么建议吗?或者更好地解决我们的问题?提前致谢。

还值得一提的是,我也尝试执行 Powershell 命令,但我需要为 Powershell class 引用的 dll 与 UWP 不兼容。

UWP 应用可用的 API 无法满足您的要求。这是一项安全决定。通过商店分发的应用程序不应该能够执行重启机器等操作。

根据您的情况,您应该不需要经过商店。这意味着您可以 PInvoke 本机代码来做任何您想做的事情。这仍然需要在实际设备上启动。

是的,你可以做到! 您应该在 App 功能声明中添加 IoT System Administration

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

并且您还需要将 "Windows UWP 物联网扩展" 添加到您的项目

将其用于关机

Windows.System.ShutdownManager.BeginShutdown(Windows.System.ShutdownKind.Shutdown, TimeSpan.FromSeconds(1));        //Delay is not relevant to shutdown

重启

Windows.System.ShutdownManager.BeginShutdown(Windows.System.ShutdownKind.Restart, TimeSpan.FromSeconds(1));     //Delay before restart after shutdown

您可以在此Link

中获取更多信息