1

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

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

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

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

谢谢。

4

2 回答 2

6

在 Windows 应用商店(又名 Metro)应用程序中无法做到这一点。此类应用程序的功能受到严格限制,不可能影响操作系统的工作方式或影响同一台机器上运行的其他进程。

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

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

于 2012-09-30T09:34:30.657 回答
-2

要关闭或重新启动 Windows 8,只需执行以下命令:

关闭:

%windir%\System32\shutdown.exe /s /t 0

重启:

%windir%\System32\shutdown.exe /r /t 0
于 2012-09-30T21:00:23.440 回答