Kbase P88087: How to set and get Windows environment variables using 4GL
Autor |
  Progress Software Corporation - Progress |
Acesso |
  Público |
Publicação |
  5/5/2005 |
|
Status: Unverified
GOAL:
How to set Windows environment variables using 4GL
GOAL:
How to get Windows environment variables using 4GL
GOAL:
How to create Windows environment variables using 4GL
GOAL:
How to read Windows environment variables using 4GL
FACT(s) (Environment):
Windows
Progress 8.x
Progress 9.x
OpenEdge 10.x
FIX:
This code sample uses Windows SetEnvironmentVariableA and GetEnvironmentVariableA API function calls to SET and GET an environment varaiable dynamically.
DEFINE VARIABLE cEnvironmentVariableName AS CHARACTER NO-UNDO.
DEFINE VARIABLE cEnvironmentVariableValue AS CHARACTER NO-UNDO.
DEFINE VARIABLE iEnvironmentVariableLength AS INTEGER NO-UNDO.
DEFINE VARIABLE iReturnedResult AS INTEGER NO-UNDO.
ASSIGN
cEnvironmentVariableName = "SomeEnvironmentVariableName"
cEnvironmentVariableValue = "SomeEnvironmentVariableValue"
iEnvironmentVariableLength = LENGTH(cEnvironmentVariableValue).
RUN SetEnvironmentVariableA (INPUT cEnvironmentVariableName, INPUT cEnvironmentVariableValue, OUTPUT iReturnedResult).
MESSAGE cEnvironmentVariableName cEnvironmentVariableValue iEnvironmentVariableLength iReturnedResult
VIEW-AS ALERT-BOX INFO BUTTONS OK.
RUN GetEnvironmentVariableA (INPUT cEnvironmentVariableName,
OUTPUT cEnvironmentVariableValue,
INPUT iEnvironmentVariableLength,
OUTPUT iReturnedResult).
MESSAGE cEnvironmentVariableName cEnvironmentVariableValue iEnvironmentVariableLength iReturnedResult
VIEW-AS ALERT-BOX INFO BUTTONS OK.
/* NOTE: the Progress 4GL OS-GETENV has no access the newly set environment variable */
MESSAGE OS-GETENV("SomeEnvironmentVariableName")
VIEW-AS ALERT-BOX INFO BUTTONS OK.
PROCEDURE SetEnvironmentVariableA EXTERNAL "KERNEL32.DLL":
DEFINE INPUT PARAMETER chrName AS CHARACTER.
DEFINE INPUT PARAMETER cEnvironmentVariable AS CHARACTER.
DEFINE RETURN PARAMETER iReturnedResult AS LONG.
END PROCEDURE.
PROCEDURE GetEnvironmentVariableA EXTERNAL "KERNEL32.DLL":
DEFINE INPUT PARAMETER chrName AS CHARACTER.
DEFINE OUTPUT PARAMETER cEnvironmentVariable AS CHARACTER.
DEFINE INPUT PARAMETER intSize AS LONG.
DEFINE RETURN PARAMETER iReturnedResult AS LONG.
END PROCEDURE.