1

私は Windows 8 用の Metro アプリを作成しています。その機能の一部として、Metro アプリから Winodws 8 のシャットダウンを開始する必要があります。質問は次のとおりです。

1) まず、このトピックについてよく調べたところ、Metro アプリでは System.Diagnostics.Process を使用できないことがわかりました。それで、別の方法はありますか?

2) 直接シャットダウンできない場合でも、Metro アプリからトリガーする方法はありますか?

C# でのソリューションを希望します。

ありがとう。

4

2 に答える 2

6

これを行うことは、Windows ストア (別名 Metro) アプリでは不可能です。このようなアプリでできることは厳密に制限されており、オペレーティング システムの動作に影響を与えたり、同じマシンで実行されている他のプロセスに影響を与えたりすることはできません。

これらの制限は、マネージ言語でプログラミングする場合、省略によって適用されます。使用したい .NET Framework クラスが欠落しています。C++ などのネイティブ言語でプログラミングする場合は、winapi を使用して回避することができます。しかし、それも機能しません。Windows ストア アプリは、単純に API 呼び出しに失敗するサンドボックスで実行されます。Internet Explorer の保護モード機能と非常によく似たセキュリティ モデルは、"アプリ コンテナー" と呼ばれます。また、ストア スクリーニング手順によって強制されるため、サンドボックスに穴が見つかったとしても、バリデーターを通過することはできず、アプリ ストアで公開することはできません。

ここで重要な点は、ストア アプリを作成してマシンを再起動するのは意味がないということです。そのようなアプリができることは何もないため、再起動が必要です。

于 2012-09-30T09:34:30.657 に答える
-2

Windows 8 をシャットダウンまたは再起動するには、次のようにシェルします。

シャットダウン:

%windir%\System32\shutdown.exe /s /t 0

リブート:

%windir%\System32\shutdown.exe /r /t 0
于 2012-09-30T21:00:23.440 に答える