summaryrefslogtreecommitdiffstats
path: root/util/scripts/win-binary/nsis/includes/writeEnvStr.nsh
diff options
context:
space:
mode:
Diffstat (limited to 'util/scripts/win-binary/nsis/includes/writeEnvStr.nsh')
-rw-r--r--util/scripts/win-binary/nsis/includes/writeEnvStr.nsh138
1 files changed, 0 insertions, 138 deletions
diff --git a/util/scripts/win-binary/nsis/includes/writeEnvStr.nsh b/util/scripts/win-binary/nsis/includes/writeEnvStr.nsh
deleted file mode 100644
index 98926d0..0000000
--- a/util/scripts/win-binary/nsis/includes/writeEnvStr.nsh
+++ /dev/null
@@ -1,138 +0,0 @@
-!ifndef WRITEENVSTR_INCLUDED
-!define WRITEENVSTR_INCLUDED
-
-!include WinMessages.nsh
-
-!ifdef ALL_USERS
- !define WriteEnvStr_RegKey \
- 'HKLM "SYSTEM\CurrentControlSet\Control\Session Manager\Environment"'
-!else
- !define WriteEnvStr_RegKey 'HKCU "Environment"'
-!endif
-
-#
-# WriteEnvStr - Writes an environment variable
-# Note: Win9x systems requires reboot
-#
-# Example:
-# Push "HOMEDIR" # name
-# Push "C:\New Home Dir\" # value
-# Call WriteEnvStr
-#
-Function WriteEnvStr
- Exch $1 ; $1 has environment variable value
- Exch
- Exch $0 ; $0 has environment variable name
- Push $2
-
- Call IsNT
- Pop $2
- StrCmp $2 1 WriteEnvStr_NT
- ; Not on NT
- StrCpy $2 $WINDIR 2 ; Copy drive of windows (c:)
- FileOpen $2 "$2\autoexec.bat" a
- FileSeek $2 0 END
- FileWrite $2 "$\r$\nSET $0=$1$\r$\n"
- FileClose $2
- SetRebootFlag true
- Goto WriteEnvStr_done
-
- WriteEnvStr_NT:
- WriteRegExpandStr ${WriteEnvStr_RegKey} $0 $1
- SendMessage ${HWND_BROADCAST} ${WM_WININICHANGE} 0 "STR:Environment" /TIMEOUT=5000
- WriteEnvStr_done:
- Pop $2
- Pop $1
- Pop $0
-FunctionEnd
-
-#
-# un.DeleteEnvStr - Removes an environment variable
-# Note: Win9x systems requires reboot
-#
-# Example:
-# Push "HOMEDIR" # name
-# Call un.DeleteEnvStr
-#
-Function un.DeleteEnvStr
- Exch $0 ; $0 now has the name of the variable
- Push $1
- Push $2
- Push $3
- Push $4
- Push $5
-
- Call un.IsNT
- Pop $1
- StrCmp $1 1 DeleteEnvStr_NT
- ; Not on NT
- StrCpy $1 $WINDIR 2
- FileOpen $1 "$1\autoexec.bat" r
- GetTempFileName $4
- FileOpen $2 $4 w
- StrCpy $0 "SET $0="
- SetRebootFlag true
-
- DeleteEnvStr_dosLoop:
- FileRead $1 $3
- StrLen $5 $0
- StrCpy $5 $3 $5
- StrCmp $5 $0 DeleteEnvStr_dosLoop
- StrCmp $5 "" DeleteEnvStr_dosLoopEnd
- FileWrite $2 $3
- Goto DeleteEnvStr_dosLoop
-
- DeleteEnvStr_dosLoopEnd:
- FileClose $2
- FileClose $1
- StrCpy $1 $WINDIR 2
- Delete "$1\autoexec.bat"
- CopyFiles /SILENT $4 "$1\autoexec.bat"
- Delete $4
- Goto DeleteEnvStr_done
-
- DeleteEnvStr_NT:
- DeleteRegValue ${WriteEnvStr_RegKey} $0
- SendMessage ${HWND_BROADCAST} ${WM_WININICHANGE} 0 "STR:Environment" /TIMEOUT=5000
-
- DeleteEnvStr_done:
- Pop $5
- Pop $4
- Pop $3
- Pop $2
- Pop $1
- Pop $0
-FunctionEnd
-
-#
-# [un.]IsNT - Pushes 1 if running on NT, 0 if not
-#
-# Example:
-# Call IsNT
-# Pop $0
-# StrCmp $0 1 +3
-# MessageBox MB_OK "Not running on NT!"
-# Goto +2
-# MessageBox MB_OK "Running on NT!"
-#
-!macro IsNT UN
-Function ${UN}IsNT
- Push $0
- ReadRegStr $0 HKLM \
- "SOFTWARE\Microsoft\Windows NT\CurrentVersion" CurrentVersion
- StrCmp $0 "" 0 IsNT_yes
- ; we are not NT.
- Pop $0
- Push 0
- Return
-
- IsNT_yes:
- ; NT!!!
- Pop $0
- Push 1
-FunctionEnd
-!macroend
-!insertmacro IsNT ""
-!insertmacro IsNT "un."
-
-!endif ;WRITEENVSTR_INCLUDED \ No newline at end of file