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

时间:2011-08-19 10:56:43

标签: c# 64-bit 32-bit lnk

我正在尝试使用32位应用程序从64位计算机上的快捷方式(.lnk)文件访问目标路径。为了获得路径,我使用了以下代码。

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

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

有没有解决这个问题?

3 个答案:

答案 0 :(得分:0)

这是Windows中的一般问题。尝试使用32位编辑器编辑System32文件夹(例如applicationHost.config)中的文件。您将从SysWOW64文件夹编辑文件而不是......这不仅仅是奇怪的......

答案 1 :(得分:0)

要使用的技巧是

  1. 从link.TargetPath
  2. 获取文件名
  3. 从link.WorkingDirectory
  4. 获取工作目录
  5. 追加路径

答案 2 :(得分:0)

对于仍然存在此问题的任何人,我发现将Platform Target设置为“ Any CPU”并取消选中“ Prefer 32-bit”选项对我来说已经解决了。这样,您的应用程序将保持与两种体系结构兼容的灵活性,并且仍然正确返回快捷链接TargetPath(x86 / x64)。