【发布时间】:2009-06-16 19:33:24
【问题描述】:
我们需要在 64 位 Vista 上运行 32 位版本的远程桌面客户端,因为我们的部分产品集成了它,并通过虚拟通道与终端服务器端应用程序通信。集成加载了一些第三方32位驱动,在64位进程中无法加载32位dll。
通常,从命令行运行 32 位版本的 Windows 应用程序非常容易,例如运行窗口:
C:\Windows\SysWOW64\Notepad.exe
您可以通过检查任务监视器\进程来判断该进程是 32 位的,因为它的文件名旁边会有一个 *32。
但是,远程桌面客户端 (mstsc.exe) 不想玩。无论我如何启动它(运行窗口、32 位 cmd 窗口等),它总是从 C:\Windows\System32\mstsc.exe 运行 64 位版本。我尝试编写一个 32 位 C++ 程序来创建它(通常子进程也是 32 位的),但这不起作用。
我也试过打电话:
Wow64DisableWow64FsRedirection
Wow64RevertWow64FsRedirection
在启动 mstsc.exe 之前和之后,但这也无济于事。
有人知道解决这个问题的方法吗?
[编辑] 我已经对进程监视器做了一些进一步的调查,似乎 32 位版本的 mstsc 确实首先启动,但是这会创建第二个 64 位进程并且 32 位版本关闭。
【问题讨论】:
-
这可能属于 serverfault.com
-
我问了关于serverfault的问题,但还没有找到答案。由于这是一个相当低级的问题,我希望 SO 社区能够提供帮助。
标签: c++ 64-bit remote-desktop vista64