【发布时间】:2010-09-02 09:44:24
【问题描述】:
我们的 32 位应用程序通过 ShellExecute 启动 Windows LNK 文件(Shell 链接)。当它试图“启动”指向 64 位二进制文件的链接时(例如“开始”菜单中的“Internet Explorer(64 位)”快捷方式),它总是最终启动 32 位二进制文件。在内部,ShellExecute 错误地解析了链接目标:LNK 内部有一个隐藏字段,其中包含 FOLDERID_ProgramFiles。 64 位应用程序将此解析为 64 位程序文件目录,但 32 位应用程序不会。
Wow64DisableWow64FsRedirection 不会改变 ShellExecute 的这种行为。
除了通过 64 位“蹦床”过程(由于我们的插件架构如何工作,这不是一个选项),32 位应用程序有什么方法可以像 64 位一样启动 shell 链接应用会?
【问题讨论】:
标签: windows shellexecute wow64 lnk