NSIS 覆盖快捷方式

发布于 2024-08-18 15:17:50 字数 272 浏览 6 评论 0原文

有没有办法告诉 NSIS 不要覆盖我的开始菜单快捷方式。我不希望它覆盖的原因是,当用户升级到新版本时,不会清除用户的命令行选项。我已经尝试过这个无济于事:

Section -AdditionalIcons
  SetOverwrite off
  CreateDirectory "${START_MENU_DIR}"
  CreateShortCut  "${START_MENU_LNK}" "$INSTDIR\${PRODUCT_NAME}.exe"
SectionEnd

Is there any way to tell NSIS not to overwrite my start menu shortcut. The reason I don't want it to overwrite is so the user's command line options aren't cleared when they upgrade to a new version. I've tried this to no avail:

Section -AdditionalIcons
  SetOverwrite off
  CreateDirectory "${START_MENU_DIR}"
  CreateShortCut  "${START_MENU_LNK}" "$INSTDIR\${PRODUCT_NAME}.exe"
SectionEnd

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

┼── 2024-08-25 15:17:50

为什么不能直接检查 IfFileExists ?

如果你想全力以赴,你可以更新路径和工作目录,但保留参数和图标,但要做到这一点,你必须自己调用 IShellLink COM 接口(使用系统插件或自定义插件/应用程序)

Why can't you just check with IfFileExists ?

If you wanted to go all out, you could update the path and working dir, but leave the parameters and icon in place, but to do that you would have to call the IShellLink COM interface on your own (With the system plugin or a custom plugin/app)

不顾 2024-08-25 15:17:50

这是一个有效的示例:

Section -AdditionalIcons

  CreateDirectory "${START_MENU_DIR}"
  IfFileExists "${START_MENU_LNK}" SkipShortcut
  CreateShortCut "${START_MENU_LNK}" "$INSTDIR\${PRODUCT_NAME}.exe"

SkipShortcut:

SectionEnd

Here is an example that works:

Section -AdditionalIcons

  CreateDirectory "${START_MENU_DIR}"
  IfFileExists "${START_MENU_LNK}" SkipShortcut
  CreateShortCut "${START_MENU_LNK}" "$INSTDIR\${PRODUCT_NAME}.exe"

SkipShortcut:

SectionEnd
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文