1

したがって、/requests オプションを指定して powercfg を呼び出し、標準出力から結果を取得するためのコードのチャンクがあります。

Process p = new Process();
p.StartInfo.UseShellExecute = false;
p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.FileName = "powercfg";
p.StartInfo.Arguments = "/requests";
p.Start();

string output = p.StandardOutput.ReadToEnd();
p.WaitForExit();

ただし、このコードを実行すると、コマンド ラインで同じコマンドを実行した場合とはまったく異なる出力が得られます。

コード バージョンの場合、「[DRIVER] ?」のロードしか取得しません。値は戻ってきますが、コマンド ラインでは通常、適切な形式の応答が 2 つまたは 3 つ得られます。

同じ環境で同じユーザーと同じコマンド プロンプト ウィンドウからコードを実行しましたが、まだ満足していません。

何か案は ?

4

2 に答える 2

0

したがって、実際の理由は、アプリケーションを「任意の CPU」用にコンパイルする必要があったためです。x86 または x64 に設定すると、依存ライブラリの 1 つの正しいバージョンをロードする際に問題が発生しました。

于 2013-02-21T10:51:44.020 に答える
0

たとえば、管理者としてアプリを実行する場合、Process.Start は同じコンテキストでプロセスを開始しようとします。

于 2013-02-20T14:06:54.653 に答える