本帖最后由 rally 于 2021-5-7 15:42 编辑
winsat disk ,这个命令如果只先执行winsat就会提示 不是内部或外部名 ,winsat disk ,两个单词的命令该如何处理?还请大大指点一下,搜了好久没弄明白
尝试用_RunDos("winsat disk -drive j -seq -read")也没反应
找到网上的一段解读,不太明白该如何改命令
使用Windows-on Windows 64位重定向。发生了什么事情,你的启动请求(从32位进程)被重定向到%windir%\SysWOW64\winsat.exe 。由于64位安装上没有此特定可执行文件的32位版本,因此启动失败。要绕过此过程并允许32位进程访问本机(64位)路径,可以引用%windir%\sysnative :
处理WinSPro = new Process();
ProcessStartInfo WinSSInfo = new ProcessStartInfo();
WinSSInfo.FileName = @"c:\windows\sysnative\winsat.exe";
WinSPro.StartInfo = WinSSInfo;
WinSPro.Start();
或者,如果将程序构建为x64,则可以将路径保留为 c:\windows \system32 。
请注意,最好使用 Environment.GetFolderPath 获取Windows目录的路径,以防操作系统安装在非标准位置:
WinSSInfo.FileName = Path.Combine(
Environment.GetFolderPath(Environment.SpecialFolder.Windows),
@"sysnative\winsat.exe");
|