I use this simple function to get system variables as TMP or ProgramFiles.
It would be useful to implement it directly in the program?
function Env(var)
local eev = kernel32.ExpandEnvironmentStringsA
eev:types{ ret = "long", abi = 'stdcall', "string", "pointer", "long" }
local buffer = aliencore.buffer(512)
eev("%" .. var .. "%", buffer, 512)
return tostring(buffer)
end