NSIS打包工具之《快捷方式到桌面、任务栏、开始菜单目录》

一、创建快捷方式到桌面

NSIS 的 CreateShortCut 指令创建任意快捷方式,示例如下:

  CreateShortCut "$DESKTOP\test.lnk" "$INSTDIR\test.exe"

注:$DESKTOP代表桌面目录路径

二、创建快捷方式到任务栏

NSIS 的 ExecShell 指令将快捷方式锁定到开始菜单或任务栏

;创建开始菜单快捷方式
ExecShell "startpin" "$DESKTOP\test.lnk"
;创建任务栏快捷方式
ExecShell "taskbarpin" "$DESKTOP\test.lnk"

卸载的时候先解除开始菜单或任务栏

;创建开始菜单快捷方式
ExecShell "startunpin" "$DESKTOP\test.lnk"
;删除任务栏快捷方式
ExecShell "taskbarunpin" "$DESKTOP\test.lnk"

三、创建快捷方式到开始菜单目录

NSIS 的 CreateShortCut 指令创建任意快捷方式,示例如下:

  SetShellVarContext all      ;所有用户下
  CreateDirectory "$SMPROGRAMS\Test"    ;建立开始菜单目录下的程序目录
  CreateShortCut "$SMPROGRAMS\Test\卸载test.lnk" "$INSTDIR\uninst.exe"
  CreateShortCut "$SMPROGRAMS\Test\test.lnk" "$INSTDIR\test.exe"

注:$SMPROGRAMS代表开始菜单程序目录

重点:这里有一个小坑,上面有一句 SetShellVarContext all
首先我们先理解一下这行命令的意思,NSIS手册解释如下:

SetShellVarContext
个人理解就是在Windows系统中本身允许很多用户的存在,因此,你可以选择打包程序是安装在哪个用户程序目录下。

那么为什么要在开始菜单目录创建快捷方式的时候提到这个,因为这有个坑:

在实际操作过程中,针对win8.1和win10操作系统,由于开始目录的权限限制,我们有时候并不能完美的显示安装包所需要的功能

我在自己得操作过程中就发现了,自制安装程序,在win10开始菜单里面创建快捷方式,第一次点开的时候,能看到,但一会儿,眼看着win10把卸载的快捷方式隐藏了。
但是点开快捷方式所在的开始菜单的文件夹,卸载的快捷方式仍然在。

目前解决的办法就是,运用all用户权限和current用户权限各写一遍,卸载的时候也记得都要删。

  SetShellVarContext current     ;当前用户下
  CreateDirectory "$SMPROGRAMS\Test"
  CreateShortCut "$SMPROGRAMS\Test\卸载test.lnk" "$INSTDIR\uninst.exe"
  CreateShortCut "$SMPROGRAMS\Test\test.lnk" "$INSTDIR\test.exe"
  SetShellVarContext all       ;所有用户下
  CreateDirectory "$SMPROGRAMS\Test"
  CreateShortCut "$SMPROGRAMS\Test\卸载test.lnk" "$INSTDIR\uninst.exe"
  CreateShortCut "$SMPROGRAMS\Test\test.lnk" "$INSTDIR\test.exe"
  • 6
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Abyssal丶Sun

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值