3

单击我的 Windows 将关闭我正在使用 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");
    }

“进程”中的红色条

那么为什么它无法读取进度,还有其他方法吗,谢谢

4

1 回答 1

7

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

Metro 应用程序是沙盒化的,不能与其他进程交互,也不能自己生成新进程,因此shutdown.exe除非您愿意将您的应用程序变成桌面应用程序而不是 Metro 应用程序,否则没有其他运行方式。

查看“ Windows 应用商店应用程序中 Windows API 的替代方案”,您会发现也没有与User: shutdownAPI 等效的 Metro。

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

于 2013-11-08T05:13:01.113 回答