我正在尝试从32位C#应用程序(在64位操作系统上)运行可执行文件,但我得到“系统无法找到指定的文件”,可能是因为C中不存在wsqmcons.exe :\ WINDOWS \ SYSWOW64。该文件确实存在于System32中。如果可能,从代码运行wsqmcons.exe的最佳方法是什么?
Process p = new Process();
p.StartInfo.Arguments = "-f";
p.StartInfo.FileName = @"C:\Windows\System32\wsqmcons.exe";
p.Start();
p.WaitForExit();
Verify.AreEqual(0, p.ExitCode);
答案 0 :(得分:1)
您需要使用Wow64DisableWow64FsRedirection关闭32位进程上的文件系统重定向,并使用Wow64RevertWow64FsRedirection重新启用它。
答案 1 :(得分:1)
位于%windir%\ System32 下的64位可执行文件不能 从32位进程启动,因为文件系统重定向器 将路径重定向到%windir%\ SysWOW64 。 不要禁用重定向到 完成此 ;请改用%windir%\ Sysnative 。欲获得更多信息, 见File System Redirector。
来自http://msdn.microsoft.com/en-us/library/windows/desktop/aa384203%28v=vs.85%29.aspx