我正在尝试使用以下代码运行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 它仍然有效。但是,当我尝试将 winsat.exe 作为 cmd.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
?有没有我误解的限制?
谢谢,
雷克斯