从metro应用程序关闭Windows 8

fel*_*f99 1 windows shutdown microsoft-metro windows-8

我正在为Windows 8做一个Metro应用程序.作为其功能的一部分,我需要从Metro App启动关闭Winodws 8.以下是问题:

1)首先,我对这个主题进行了很多研究,发现System.Diagnostics.Process不适用于Metro App.那么,还有另一种方法吗?

2)即使我不能直接关机,有没有办法从Metro App触发它?

我更喜欢C#中的解决方案.

谢谢.

Han*_*ant 6

在Windows应用商店(也称为Metro)应用中无法执行此操作.这些应用程序严格限制在它们可以执行的操作中,不会影响操作系统的工作方式或影响在同一台计算机上运行的其他进程.

如果您使用托管语言进行编程,则会通过省略强制执行这些限制.您希望使用的.NET框架类缺失.如果您使用C++这样的本地语言编程,那么您可以尝试使用winapi来解决它.但这也不起作用,Windows应用商店应用程序在沙箱中运行,该沙箱只是无法通过api调用.与Internet Explorer的保护模式功能非常相似,安全模型名为"App Container".并且通过商店筛选程序强制执行,即使您确实在沙箱中找到了一个洞,那么您也无法通过验证器获取它并且无法将其发布到应用商店中.

这里的关键点是,编写商店应用程序以重启机器是没有意义的.因为没有这样的应用程序可以做,这需要重新启动.