使用32位应用程序从64位系统上的快捷方式文件访问目标路径



我试图使用我的32位应用程序从64位机器上的快捷方式(. link)文件访问目标路径。为了获得路径,我使用了以下代码:

WshShell shell = new WshShell();
IWshShortcut link = (IWshShortcut)shell.CreateShortcut(flexShortcut);
FLEXEXE = link.TargetPath;

返回路径C:Program Files (X86)..而不是C:Program Files..

有什么办法可以解决这个问题吗?

一个技巧是

  1. 从链接中获取文件名。定位路径
  2. 从链接中获取工作目录。WorkingDirectory
  3. 附加路径

这是Windows中普遍存在的问题。尝试使用32位编辑器编辑System32文件夹中的文件(例如applicationHost.config)。您将从SysWOW64文件夹中编辑文件…

对于仍然有这个问题的人,我发现将平台目标设置为"任意cpu";取消选择"Prefer 32-bit";帮我修好了。这样,您的应用程序将保持与两种体系结构兼容的灵活性,并且仍然正确返回快捷链接TargetPath (x86/x64)。

最新更新