Registry and INI
Root keys are the predefined globals HKLM, HKCU, HKCR, HKU, HKCC and
SHCTX. Subkey paths take forward slashes and are rewritten to backslashes on
the way out.
WriteRegStr / WriteRegDWORD
Section titled “WriteRegStr / WriteRegDWORD”writeReg is both: the value’s type picks the instruction.
Usage writeReg(rootKey, subKey, entryName, value) → nothing
writeReg(HKLM, "Software/Example", "Path", INSTDIR)writeReg(HKLM, "Software/Example", "Build", 42)The other write forms
Section titled “The other write forms”| NSIS | Installua |
|---|---|
WriteRegExpandStr |
writeRegExpandStr(root, subKey, name, value) |
WriteRegBin |
writeRegBin(root, subKey, name, hexString) |
WriteRegMultiStr |
writeRegMultiStr(root, subKey, name, hexString) |
WriteRegNone |
writeRegNone(root, subKey, name[, hexData]) |
ReadRegStr / ReadRegDWORD
Section titled “ReadRegStr / ReadRegDWORD”A missing key or value gives "" or 0 and sets the error flag, so the empty
string is the test most scripts want.
Usage readRegStr(root, subKey, entryName) → string ·
readRegDword(root, subKey, entryName) → int
local path = readRegStr(HKLM, "Software/Example", "Path")DeleteRegKey / DeleteRegValue
Section titled “DeleteRegKey / DeleteRegValue”deleteRegKey deletes the key and everything under it — what an uninstaller
wants and a footgun everywhere else.
Usage deleteRegKey(root, subKey[, { … }]) · deleteRegValue(root, subKey, entryName)
Options ifEmpty, ifNoSubKeys, ifNoValues
deleteRegKey(HKLM, "Software/Example")EnumRegKey / EnumRegValue
Section titled “EnumRegKey / EnumRegValue”The name of the n-th subkey or value, counting from zero, or "" past the
end.
Usage enumRegKey(root, subKey, index) → string ·
enumRegValue(root, subKey, index) → string
local key = enumRegKey(HKLM, "Software/Example", 0)ReadINIStr / WriteINIStr / DeleteINIStr / DeleteINISec / FlushINI
Section titled “ReadINIStr / WriteINIStr / DeleteINIStr / DeleteINISec / FlushINI”| NSIS | Installua |
|---|---|
ReadINIStr |
readIniStr(iniFile, section, entryName) → string |
WriteINIStr |
writeIniStr(iniFile, section, entryName, value) |
DeleteINIStr |
deleteIniStr(iniFile, section, entryName) |
DeleteINISec |
deleteIniSection(iniFile, section) |
FlushINI |
flushIni(iniFile) |
writeIniStr(INSTDIR .. "/app.ini", "General", "Path", INSTDIR)flushIni(INSTDIR .. "/app.ini")