C# 我的项目可以';t使用System.Diagnostics.Process

C# 我的项目可以';t使用System.Diagnostics.Process,c#,visual-studio-2013,windows-8.1,C#,Visual Studio 2013,Windows 8.1,单击“我的窗口”将关闭 我正在用c语言为Windows8.1开发一个metro应用程序 使用图书馆 行动是 “过程”中的红色条 那么,为什么它无法读取进度,还有其他方法吗?多亏了Metro应用程序只有有限的可用类子集,进程类是被删除的类之一。如果在中查找时某个类的MSDN上没有windows应用商店图标(),则该类在metro应用程序中不可用 Metro应用程序是沙盒应用程序,无法与其他进程交互,也无法生成新进程,因此没有其他方法可以运行shutdown.exe,除非您愿意将应用程序设置为桌面应

单击“我的窗口”将关闭 我正在用c语言为Windows8.1开发一个metro应用程序

使用图书馆

行动是

“过程”中的红色条


那么,为什么它无法读取进度,还有其他方法吗?多亏了Metro应用程序只有有限的可用类子集,
进程
类是被删除的类之一。如果在中查找时某个类的MSDN上没有windows应用商店图标(),则该类在metro应用程序中不可用

Metro应用程序是沙盒应用程序,无法与其他进程交互,也无法生成新进程,因此没有其他方法可以运行
shutdown.exe
,除非您愿意将应用程序设置为桌面应用程序而不是Metro应用程序

查看“”可以看到,也没有与
User:shutdown
API等效的metro

如果你绝对不想创建一个桌面应用程序,但仍然想关闭它,那么我能想到的唯一其他解决办法就是,有第二个程序作为系统服务运行,你的metro应用程序可以通过某种形式的网络与之对话。这样,您可以让您的metro应用程序向服务发送请求,然后该服务将实际启动关机命令

using System.Diagnostics;
using System.Runtime.InteropServices;
    private void Button_Click(object sender, RoutedEventArgs e)
    {  
        Process.Start("shutdown", "/s /t 0");
    }