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 是要執行的主程序的名稱

 

啟動項:

WriteRegStr HKCU "Software\Microsoft\Windows\CurrentVersion\Run" "TestAddKey" "$INSTDIR\Test.exe"
#該命令放在安裝區域(Section "MainSection" SEC01), 或者注冊區域(Section -Post)都可以

root_key:  注冊表根鍵值: HKCU (HKEY_CURRENT_USER)
subkey: 子鍵值: Run鍵(解釋見前言)
key_name: 新增鍵值名稱: TestAddKey
value: 啟動命令: “Test.exe絕對路徑”, 如有命令行參數可以在路徑后添加

刪除啟動項:

DeleteRegValue HKCU "Software\Microsoft\Windows\CurrentVersion\Run" "TestAddKey"
#該命令放在卸載命令區域(Section Uninstall)

 

 

 獲取安裝包的名稱:

section main

    ${GetExeName} $R0
    ${GetFileName} "$R0" $R1

    MessageBox MB_OK "My installer's exe is $R1"
sectionend

${GetFileName} $EXEFILE $R2

;MessageBox MB_OK  $EXEFILE

${GetBaseName} $R2 $R1

;MessageBox MB_OK  $R1

StrCpy $Channel $R1


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM