Mailing List Archive: 49091 messages
  • Home
  • Script library
  • AltME Archive
  • Mailing list
  • Articles Index
  • Site search
 

[REBOL] Re: Environment variables

From: dan::rolander::com at: 2-Jan-2001 5:45

Helmut, here's one way to do it: REBOL [] comment { Win32 API Declarations: DWORD GetEnvironmentVariable( LPCTSTR lpName, // environment variable name LPTSTR lpBuffer, // buffer for variable value DWORD nSize // size of buffer ); BOOL SetEnvironmentVariable( LPCTSTR lpName, // environment variable name LPCTSTR lpValue // new value for variable ); } kernel32: make object! [ lib: load/library %kernel32.dll win32api-GetEnvironmentVariable: make routine! [ name [string!] buffer [string!] size [ struct! [ size [integer!] ] ] return: [integer!] ] lib "GetEnvironmentVariableA" get-env: func [name [string!] /local size][ buffer: copy "" repeat sp 255 [buffer: append buffer " "] size: make struct! [size [integer!]] reduce [length? buffer] win32api-GetEnvironmentVariable name buffer size trim buffer ] win32api-SetEnvironmentVariable: make routine! [ name [string!] value [string!] return: [integer!] ] lib "SetEnvironmentVariableA" set-env: func [name [string!] value [string!] ][ win32api-SetEnvironmentVariable name value ] ] test: does [ env: kernel32/get-env "REBOL_HOME" print ["REBOL_HOME = " env] kernel32/set-env "REBOL_HOME" "C:\New Dir" env: kernel32/get-env "REBOL_HOME" print ["REBOL_HOME = " env] ]