Nsis 解决程序安装后要右键管理员权限运行问题

解决问题:

         程序安装后,通过桌面快捷方式运行程序时不需要再右键选择管理员身份运行。

注意:程序安装时需要使用管理员权限进行安装,才能往注册写入信息

 

;针对当前用户有效
WriteRegStr HKCU "SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers" "$INSTDIR\${MAIN_PROGRAM_NAME}M.exe" "RUNASADMIN" 

;针对所有用户有效
WriteRegStr HKEY_LOCAL_MACHINE "SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers" "$INSTDIR\${MAIN_PROGRAM_NAME}M.exe" "RUNASADMIN" 

解释:${MAIN_PROGRAM_NAME}M.exe 是要执行的主程序的名称

 

示例代码: writeRegedit.nsi

!include nsdialogs.nsh
XPStyle on

!include "MUI.nsh"
!include "WinCore.nsh"
!include "FileFunc.nsh"
!include "nsWindows.nsh"
!include "WinMessages.nsh"

!include "WndSubclass.nsh"
!include "WordFunc.nsh"

!include "x64.nsh"

!define MAIN_PROGRAM_NAME "D:\test.exe"

!define PRODUCT_UNINST_ROOT_KEY "HKLM"
!define PRODUCT_DIR_REGKEY "Software\Microsoft\Windows\CurrentVersion\App Paths\Xiaoneng.exe"
InstallDirRegKey HKLM "Software\PRODUCT_INSTALL_DIR" ""

OutFile "writeRegedit.exe"
Name "writeRegedit"

Section "test"
  
 	;针对当前用户有效
	WriteRegStr HKCU "SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers" "$INSTDIR\${MAIN_PROGRAM_NAME}" "RUNASADMIN"

	;针对所有用户有效
	WriteRegStr HKEY_LOCAL_MACHINE "SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers" "$INSTDIR\${MAIN_PROGRAM_NAME}" "RUNASADMIN"

SectionEnd

 

### 解决Windows 11上NSIS安装脚本出现的错误 针对在Windows 11环境中遇到的NSIS安装脚本问题,可以从多个角度来排查并解决问题。 #### 验证兼容模式设置 对于某些旧版本的NSIS编译出来的安装包,在新的操作系统如Windows 11下可能会存在兼容性问题。尝试右键点击生成的`.exe`文件,选择属性中的“兼容性”,勾选“以兼容模式运行这个程序”,并将版本设定为较早的操作系统版本测试效果[^1]。 #### 更新NSIS至最新版 考虑到软件更新带来的改进和支持新系统的特性,建议确认使用的NSIS是否为官方发布的最新稳定版本。新版通常修复了一些已知漏洞以及增加了对不同平台更好的支持能力[^3]。 #### 修改脚本适应高DPI屏幕 部分用户反馈在高分辨率显示器或启用了缩放功能的情况下遇到了图形界面显示异常的情况。可以在NSIS脚本头部加入如下代码片段处理: ```nsis ; 支持高dpi SetAutoScaleDPI true ``` 此命令使得创建的应用窗口能够更好地适配不同的屏幕比例和清晰度需求[^2]。 #### 添加管理员权限请求 有时由于安全策略限制,普通账户执行特定操作会被阻止。通过编辑NSIS源码增加UAC(User Account Control)提升指令可以有效规避此类障碍: ```nsis RequestExecutionLevel admin ; 请求管理权限 ``` 上述措施有助于确保应用程序能够在目标机器上有足够的权利完成必要的配置更改工作。
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值