3

クリックすると Windows がシャットダウンします C# 言語を使用して Windows 8.1 用のメトロ アプリを開発しています

ライブラリの使用

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

アクションは

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

「プロセス」の赤いバー

では、なぜ Progress を読み取れなかったのでしょうか。他の方法はありますか。ありがとうございます。

4

1 に答える 1

7

Metro アプリには、使用可能なクラスの限られたサブセットしかありません。このProcessクラスは、削除されたクラスの 1 つです。名前空間ビューで見ているときにクラスに Windows ストア アイコン ( ここに画像の説明を入力) が MSDN に表示されていない場合、そのクラスはメトロ アプリで使用できません。

Metro アプリはサンドボックス化されており、他のプロセスとやり取りしたり、新しいプロセス自体を生成したりすることはできないため、アプリを Metro アプリではなくshutdown.exeデスクトップ アプリにする場合を除き、実行するための代替手段はありません。

Windows ストア アプリの Windows API の代替」を見ると、API に相当するメトロがないこともわかりUser: shutdownます。

デスクトップ アプリを絶対に作成したくないがシャットダウンできるようにしたい場合は、Metro アプリが通信できるシステム サービスとして実行される 2 つ目のプログラムを用意することしか考えられません。ある種のIPC。そうすれば、metro アプリからサービスにリクエストを送信できます。その後、サービスが実際にシャットダウン コマンドを開始します。

于 2013-11-08T05:13:01.113 に答える