Add support for InnoSetup 'Constants'
Brought to you by:
yackimoff
It should be great to add support in InnoSetup Preprocessor for the same InnoSetup Constants:
. Directory Constants ({sys}, {syswow64}, {pf32}, {pf64}, {cf32}, {cf64}, {fonts}, {dao}, ...)
. Shell Folder Constants ({group}, {localappdata}, ...)
. the 'Other Constants' ({computername}, {param:ParamName|DefaultValue}, {sysuserinfoname}, {sysuserinfoorg}, {username}, ...)
Using the same Prototype as InnoSetup:
str ExpandConstant(str)
So, it will be easier and cleaner to do such things (ugly atm):
#define SystemPaths 6
#dim SystemPathConstants[SystemPaths]
#dim SystemPathValues[SystemPaths]
#define SystemPathConstants[0] "{win}"
#define SystemPathValues[0] GetEnv("windir")
#define SystemPathConstants[1] "{sys}"
#define SystemPathValues[1] GetEnv("windir") + "\system32"
#define SystemPathConstants[2] "{syswow64}"
#define SystemPathConstants[3] "{pf}"
#define SystemPathConstants[4] "{cf}"
#define SystemPathConstants[5] "{commonappdata}"
#ifdef WinXP
#define SystemPathValues[2] SystemPathValues[1]
#define SystemPathValues[3] GetEnv("ProgramFiles")
#define SystemPathValues[4] GetEnv("CommonProgramFiles")
#define SystemPathValues[5] ""
#endif
#ifdef Win7
#define SystemPathValues[2] GetEnv("windir") + "\SysWOW64"
#define SystemPathValues[3] GetEnv("ProgramFiles(x86)")
#define SystemPathValues[4] GetEnv("CommonProgramFiles(x86)")
#define SystemPathValues[5] GetEnv("ProgramData")
#endif