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

时间:2013-11-08 05:11:18

标签: c# visual-studio-2013 windows-8.1

单击我的窗口

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

使用库

using System.Diagnostics;
using System.Runtime.InteropServices;

行动是

    private void Button_Click(object sender, RoutedEventArgs e)
    {  
        Process.Start("shutdown", "/s /t 0");
    }
“过程”中的

红色栏

所以为什么它无法读取进度,还有其他任何方法,谢谢

1 个答案:

答案 0 :(得分:7)

Metro应用程序只有可用的有限类子集,Process类是已删除的类之一。如果您在查看namespace view时某个类在MSDN上没有Windows应用商店图标(enter image description here),则该类无法在metro应用中使用。

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

看一看“Alternatives to Windows APIs in Windows Store apps”,您可以看到没有等效于User: shutdown API的地铁。

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