1

我正在尝试从 32 位 C# 应用程序(在 64 位操作系统上)运行可执行文件,但我得到“系统找不到指定的文件”可能是因为 C:\Windows 中不存在 wsqmcons.exe \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);
4

2 回答 2

1

您需要使用 Wow64DisableWow64FsRedirection 关闭 32 位进程上的文件系统重定向,然后使用 Wow64RevertWow64FsRedirection 重新启用它。

于 2011-09-30T21:39:16.517 回答
1

无法从 32 位进程启动位于%windir%\System32下的 64 位可执行文件,因为文件系统重定向器会将路径重定向到%windir%\SysWOW64不要禁用重定向来 完成此操作;使用%windir%\Sysnative代替。有关详细信息,请参阅文件系统重定向器

引用自http://msdn.microsoft.com/en-us/library/windows/desktop/aa384203%28v=vs.85%29.aspx

于 2014-02-14T15:29:30.787 回答