2011-09-30 134 views
1

我试图从32位C#应用程序(在64位操作系统上)运行可执行文件,但我得到“系统找不到文件指定“可能是因为wsqmcons.exe不存在于C:\ Windows \ SySWOW64中。该文件在System32中存在。如果可能,从代码运行wsqmcons.exe的最佳方式是什么?与Wow64RevertWow64FsRedirection从32位代码在System32中运行64位可执行文件

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); 
+3

对于一个快速正肮脏的修复,尝试改变的路径:'@ “C:\ WINDOWS \ Sysnative \ wsqmcons.exe”'。 有关更多针对Win32 API的其他详细信息/指针,请参阅http://support.microsoft.com/kb/942589,但也可能对.NET有所帮助。 –

+1

@Michael根据http://msdn.microsoft.com/en-us/library/aa384187%28VS.85%29.aspx这是建议,所以它不是很快,n-dirty毕竟!我相信你应该发表这个评论作为答案。 – Steven

回答

2

您需要关闭文件系统重定向上与Wow64DisableWow64FsRedirection和你的32位进程重新启用它。

相关问题