5

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

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

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

有什么解决方法吗?

4

3 回答 3

1

要使用的一个技巧是

  1. 从 link.TargetPath 获取文件名
  2. 从 link.WorkingDirectory 获取工作目录
  3. 追加路径
于 2012-05-23T10:42:13.830 回答
0

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

于 2011-08-19T21:12:46.153 回答
0

对于仍然遇到此问题的任何人,我发现将平台目标设置为“任何 CPU”并取消选中“首选 32 位”选项为我修复了它。这样,您的应用程序将保持与两种架构兼容的灵活性,并且仍然正确返回快捷链接 TargetPath(x86 / x64)。

于 2020-07-20T03:23:56.243 回答