Consultor Eletrônico



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.