【问题标题】:Shell execution of existing shortcuts works, but execution of new shortcuts fails. Why?Shell 执行现有快捷方式有效,但执行新快捷方式失败。为什么?
【发布时间】:2014-04-23 21:27:27
【问题描述】:

在 Java(可能还有 .NET 和其他平台)中执行 Windows 快捷方式时,执行现有快捷方式没有问题,但无论设置、权限、工作目录、快捷方式目标的内容如何,​​新快捷方式都无法执行,快捷方式的位置、目标的位置或任何与快捷方式相关的设置。

作为参考,有问题的代码如下,尽管问题的范围可能比这个特定代码所暗示的更广泛和陌生:

// Replace <SomeWindowsShortcut.lnk> with an actual shortcut name.
// Shortcuts are implemented as a file with the hidden extension "lnk"
String command = String command = "CMD /C start data\\<SomeWindowsShortcut.lnk>";
Runtime.getRuntime().exec(command);

什么可能导致这种不兼容,我该如何解决?

【问题讨论】:

    标签: java exec java-6 windows-shortcut


    【解决方案1】:

    Windows 7 和 Windows XP 似乎生成了稍微不兼容的文件快捷方式。

    暂时搁置 shell 执行(任何类型的)和 Windows 快捷方式的编程执行的不优雅。

    经过一些故障排除后,事实证明,Windows XP 生成的快捷方式的执行成功,而在 Windows 7(可能是 Vista 和其他版本)中创建的修改的快捷方式产生了“找不到路径”错误。

    两个快捷方式的二进制内容不同,但没有对这些差异进行全面分析。

    快速的解决方案是在 Windows XP 中创建必要的快捷方式。 一个长期且不那么可怕的解决方案是完全取消使用快捷方式。

    我很好奇有关快捷方式之间的 shell 执行不兼容的细节的任何信息。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-11-18
      • 2019-07-10
      • 1970-01-01
      • 2016-08-14
      • 2010-09-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多