从32位代码在System32中运行64位可执行文件

本文关键字:运行 64位 可执行文件 System32 32位 代码 | 更新日期: 2023-09-27 18:10:22

我正在尝试从32位c#应用程序(在64位操作系统上)运行可执行文件,但我得到"系统找不到指定的文件",可能是因为wsqmcons.exe在C:' windows ' syswow64中不存在。System32中不存在该文件。如果可能的话,从代码运行wsqmcon .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);

从32位代码在System32中运行64位可执行文件

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

位于%windir%'System32下的64位可执行文件不能从32位进程启动,因为文件系统重定向将路径重定向到%windir%'SysWOW64不要禁用重定向到完成这个 ;请使用%windir%' syative 。欲了解更多信息,请

文件系统重定向

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