次のコードを使用して、 Windows システム評価ツール(winsat.exe) を実行しようとしています。
System.Diagnostics.Process WinSPro =
new System.Diagnostics.Process();
System.Diagnostics.ProcessStartInfo WinSSInfo =
new System.Diagnostics.ProcessStartInfo();
WinSSInfo.FileName = "cmd.exe";
WinSSInfo.Arguments = "/k winsat.exe";
WinSPro.StartInfo = WinSSInfo;
WinSPro.Start();
このコードは、cmd.exe を呼び出すだけで機能し、regedit.exe を呼び出しても機能します。しかし、cmd.exe の引数として winsat.exe を呼び出そうとすると失敗します。コマンド プロンプトには次のように表示されます。
「winsat.exe」は内部コマンドまたは外部コマンドとして認識されません。 操作可能なプログラムまたはバッチ ファイル。
winsat.exe を呼び出すいくつかの方法を試しました。
に代入
"winsat.exe"
して直接呼び出しProcessStartInfo.FileName
ます。次のエラーで失敗しますWin32Exception
。The system cannot find the file specified
上記のように、フル パスを使用して -
@"c:\windows\system32\winsat.exe"
. 同じエラーで失敗します。システム管理者としてコードを実行します。それでも失敗します。
コード例のように winsat.exe を呼び出します。先ほど説明したように失敗しました。
コードから起動されたコマンド プロンプトでは、c:\windows\system32 にある .dll ファイルしか表示されないのは興味深いことです。
なぜwinsat.exeを起動できないのか、誰にも分かりますSystem.Diagnostics.Process
か? 私が誤解している制限はありますか?
ありがとう、
レックス