原因:
NSIS 打包后安装包程序默认是以管理员身份启动的,第一次安装完成后自动启动应用时会继承安装包的权限(管理员)导致拖拽功能无法使用了,而直接从桌面运行快捷方式是没问题的。
解决这个问题有两个方式:
1.nsis 以非管理身份安装
RequestExecutionLevel user
-
nsis以管理员权限安装, 以非管理员权限启动程序
需求:通过NSIS脚本以非管理员权限启动test.exe
正常情况你调用ExecShell, Exec,ExecWait... 此时test.exe都会是管理员权限运行
这时候我们可以借助explorer.exe神器
使用方法: System::Call 'shell32::ShellExecute(i 0, t"open", t"explorer.exe", t" /e,test.exe", t"$INSTDIR\", i 0)'
注: $INSTDIR\ 表示test.exe所在目录