EnVar plug-in: Difference between revisions
From NSIS Wiki
Jump to navigationJump to search
No edit summary |
(Clarify some things) |
||
(One intermediate revision by one other user not shown) | |||
Line 10: | Line 10: | ||
== Description == | == Description == | ||
Basically this plugin allows you to check for environment variables, check for paths in those variables, add and remove paths, | Basically this plugin allows you to check for environment variables, check for paths in those variables, add and remove paths, delete environment variables, and update the installer environment if the windows environment has changed. | ||
Just extract the contents to your nsis directory (usually '$PROGRAMFILES\NSIS'). | Just extract the contents to your nsis directory (usually '$PROGRAMFILES\NSIS'). | ||
Line 46: | Line 46: | ||
DetailPrint "EnVar::SetHKCU" | DetailPrint "EnVar::SetHKCU" | ||
; Check | ; Check if the 'temp' variable exists in EnVar::SetHKxx | ||
EnVar::Check "temp" "NULL" | EnVar::Check "temp" "NULL" | ||
Pop $0 | Pop $0 | ||
DetailPrint "EnVar::Check returned=|$0|" | DetailPrint "EnVar::Check returned=|$0|" | ||
; | ; Append a value | ||
EnVar::AddValue "ZTestVariable" "C:\Test" | EnVar::AddValue "ZTestVariable" "C:\Test" | ||
Pop $0 | Pop $0 | ||
Line 60: | Line 60: | ||
DetailPrint "EnVar::AddValue returned=|$0|" | DetailPrint "EnVar::AddValue returned=|$0|" | ||
EnVar::AddValue "ZTestVariable1" "C:\Test" | EnVar::AddValue "ZTestVariable1" "C:\Test" | ||
Pop $0 | Pop $0 | ||
DetailPrint "EnVar::AddValue returned=|$0|" | DetailPrint "EnVar::AddValue returned=|$0|" | ||
; Append an expanded value (REG_EXPAND_SZ) | |||
EnVar::AddValueEx "ZTestVariable1" "C:\Test" | EnVar::AddValueEx "ZTestVariable1" "C:\Test" | ||
Pop $0 | Pop $0 | ||
Line 91: | Line 91: | ||
DetailPrint "EnVar::Delete returned=|$0|" | DetailPrint "EnVar::Delete returned=|$0|" | ||
; Try deleting "path", this should give an error | ; Try deleting "path", this should give an error (%path% is a shared resource) | ||
EnVar::Delete "path" | EnVar::Delete "path" | ||
Pop $0 | Pop $0 |
Latest revision as of 15:30, 30 September 2022
Author: JasonFriday13 (talk, contrib) |
Links
Plugin package:
EnVar_plugin.zip (36 KB)
Description
Basically this plugin allows you to check for environment variables, check for paths in those variables, add and remove paths, delete environment variables, and update the installer environment if the windows environment has changed.
Just extract the contents to your nsis directory (usually '$PROGRAMFILES\NSIS').
Sample Usage
Name "EnVar Example" OutFile "EnVarExample.exe" RequestExecutionLevel User ShowInstDetails Show Page InstFiles Unicode True Section ; Check for write access EnVar::Check "NULL" "NULL" Pop $0 DetailPrint "EnVar::Check write access HKCU returned=|$0|" ; Set to HKLM EnVar::SetHKLM ; Check for write access EnVar::Check "NULL" "NULL" Pop $0 DetailPrint "EnVar::Check write access HKLM returned=|$0|" ; Set back to HKCU EnVar::SetHKCU DetailPrint "EnVar::SetHKCU" ; Check if the 'temp' variable exists in EnVar::SetHKxx EnVar::Check "temp" "NULL" Pop $0 DetailPrint "EnVar::Check returned=|$0|" ; Append a value EnVar::AddValue "ZTestVariable" "C:\Test" Pop $0 DetailPrint "EnVar::AddValue returned=|$0|" EnVar::AddValue "ZTestVariable" "C:\TestJas" Pop $0 DetailPrint "EnVar::AddValue returned=|$0|" EnVar::AddValue "ZTestVariable1" "C:\Test" Pop $0 DetailPrint "EnVar::AddValue returned=|$0|" ; Append an expanded value (REG_EXPAND_SZ) EnVar::AddValueEx "ZTestVariable1" "C:\Test" Pop $0 DetailPrint "EnVar::AddValue returned=|$0|" EnVar::AddValueEx "ZTestVariable1" "C:\TestVariable" Pop $0 DetailPrint "EnVar::AddValue returned=|$0|" ; Delete a value from a variable EnVar::DeleteValue "ZTestVariable1" "C:\Test" Pop $0 DetailPrint "EnVar::DeleteValue returned=|$0|" EnVar::DeleteValue "ZTestVariable1" "C:\Test" Pop $0 DetailPrint "EnVar::DeleteValue returned=|$0|" EnVar::DeleteValue "ZTestVariable1" "C:\TestJason" Pop $0 DetailPrint "EnVar::DeleteValue returned=|$0|" ; Delete a variable EnVar::Delete "ZTestVariable" Pop $0 DetailPrint "EnVar::Delete returned=|$0|" ; Try deleting "path", this should give an error (%path% is a shared resource) EnVar::Delete "path" Pop $0 DetailPrint "EnVar::Delete returned=|$0|" SectionEnd