我有一个运行良好的 NSIS 脚本,它创建了“开始”菜单快捷方式,其中一个指向批处理文件。问题是用户必须右键单击并以管理员身份运行,否则它将失败。有没有办法创建以管理员身份运行的快捷方式?我不是想绕过安全性,只是让它自动提示 UAC。我能想到的唯一选择是在批处理文件中指示用户,这很俗气。我还想过为批处理文件本身搜索以管理员身份运行,但也出现了空缺。
这是我的 NSIS 安装程序的开始菜单部分:
# CREATE SHORTCUTS
!insertmacro MUI_STARTMENU_WRITE_BEGIN MySoftware
# Create shortcut.
SetShellVarContext all
CreateDirectory "$SMPROGRAMS\$SMGroup"
CreateDirectory "$SMPROGRAMS\$SMGroup\Uninstaller"
SetOutPath $SMPROGRAMS\$SMGroup
CreateShortCut "$SMPROGRAMS\$SMGroup\GO.lnk" "$INSTDIR\bin\go.bat"
CreateShortcut "$SMPROGRAMS\$SMGroup\Uninstaller\Uninstall.lnk" $INSTDIR\Uninstaller.exe
SectionGetFlags ${SEC_SCHEDULER} $R0
IntOp $R0 $R0 & ${SF_SELECTED}
IntCmp $R0 ${SF_SELECTED} svc jump1 jump1
svc:
# Create shortcut to Scheduler Service Manager
CreateShortCut "$SMPROGRAMS\$SMGroup\Scheduler.lnk" "$INSTDIR\bin\${SVC_MGR_BAT}"
jump1:
DetailPrint "Registry Entry: ${REGKEY}\StartMenu : $SMGroup"
WriteRegStr HKLM "${REGKEY}" StartMenu $SMGroup
!insertmacro MUI_STARTMENU_WRITE_END
编辑:我检查了 CreateShortCut 参考,并没有提到它,但认为 NSIS 脚本中的其他地方可能有一些解决方法。 创建快捷方式 NSIS