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

 

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 12
    评论
首先,您需要安装 NSIS (Nullsoft Scriptable Install System) 工具,它可以帮助您创建 Windows 安装程序。您可以从 NSIS 官网上下载并安装它。 接下来,您需要创建一个 NSIS 脚本文件。以下是一个简单的示例: ``` ; Script generated by the HM NIS Edit Script Wizard. ; Define variables Name "My Application" OutFile "MyApplicationInstaller.exe" InstallDir "$PROGRAMFILES\My Application" InstallDirRegKey HKLM "SOFTWARE\My Application" "Install_Dir" RequestExecutionLevel user ; Pages Page components Page directory Page instfiles ; Components Section "Main Application" SEC01 SetOutPath "$INSTDIR" File "MyApplication.exe" SectionEnd Section "Documentation" SEC02 SetOutPath "$INSTDIR\Documentation" File "Readme.txt" SectionEnd Section "Start Menu Shortcuts" SEC03 CreateDirectory "$SMPROGRAMS\My Application" CreateShortcut "$SMPROGRAMS\My Application\My Application.lnk" "$INSTDIR\MyApplication.exe" CreateShortcut "$SMPROGRAMS\My Application\Uninstall.lnk" "$INSTDIR\Uninstall.exe" SectionEnd Section "Uninstall" SEC04 Delete "$INSTDIR\MyApplication.exe" Delete "$INSTDIR\Documentation\Readme.txt" RMDir "$INSTDIR\Documentation" Delete "$SMPROGRAMS\My Application\My Application.lnk" Delete "$SMPROGRAMS\My Application\Uninstall.lnk" RMDir "$SMPROGRAMS\My Application" DeleteRegKey HKLM "SOFTWARE\My Application" SectionEnd ``` 以上脚本包含以下内容: - 应用程序的名称,安装程序的输出文件名以及安装目录。 - 页面,这些页面可以让用户选择组件安装目录等。 - 组件,包含应用程序、文档和快捷方式。 - 卸载部分,用于删除应用程序和相关组件。 您可以根据自己的需求进行修改和扩展。修改完成后,将该脚本文件保存为 `installer.nsi`。 接下来,在您的 React + Electron 应用程序的根目录下,创建一个名为 `build` 的文件夹,并将您的应用程序构建到该文件夹中。最后,将 `installer.nsi` 文件复制到 `build` 文件夹中。 最后,打开命令行界面,导航到 `build` 文件夹,并运行以下命令: ``` makensis installer.nsi ``` 这将生成一个名为 `MyApplicationInstaller.exe` 的安装程序,您可以将其提供给用户安装您的应用程序。 注意:以上示例仅为演示目的,实际情况可能会有所不同。请确保根据您的应用程序的实际情况进行修改。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值