我的项目无法使用System.Diagnostics.Process

Ala*_*ine 3 c# visual-studio-2013 windows-8.1

点击我的窗口将关闭我正在使用c#语言为Windows 8.1开发一个metro应用程序

使用库

using System.Diagnostics;
using System.Runtime.InteropServices;
Run Code Online (Sandbox Code Playgroud)

行动是

    private void Button_Click(object sender, RoutedEventArgs e)
    {  
        Process.Start("shutdown", "/s /t 0");
    }
Run Code Online (Sandbox Code Playgroud)

"过程"中的红色栏

所以为什么它不能读取进展,还有其他任何方法,谢谢

Sco*_*ain 7

Metro应用程序只有可用的有限类子集,Process该类是已删除的类之一.如果一个类没有windows store图标(在此输入图像描述)当您查看命名空间视图时,在MSDN上,该类不可用于metro应用程序.

Metro应用程序是沙盒式的,无法与其他进程交互,也无法自行生成新进程,因此shutdown.exe除非您愿意将应用程序设置为桌面应用程序而非Metro应用程序,否则无法运行.

看一下" Windows应用商店应用中Windows API的替代方案 ",您可以看到没有相当于User: shutdownAPI的城域网.

如果您绝对不想创建桌面应用程序,但仍希望能够关闭我能想到的唯一其他工作,那就是让第二个程序作为您的metro应用程序可以通过的地方应用程序与之交谈的系统服务运行某种形式的IPC.这样,您可以让您的metro应用程序向服务发送请求,然后该服务将实际启动shutdown命令.