ProcessSetEnv Function

Action

Sets an environment variable for a process.

Important: This function must be called before the ProcessStart function and after the ProcessInitialize function.
Note: This function can be called more than once (for every environment variable).

Include file

Kernel.bdh

Syntax

ProcessSetEnv( in hProc  : number,
               in sKey   : string,
               in sValue : string optional): boolean;

Return value

  • true if successful.

  • false in case of an error. The GetLastError function may be used to retrieve the system error code.

Parameter Description
hProc The handle that identifies the process. It is returned by the ProcessInitialize function.
sKey Specifies the environment variable of which the value is being set.
sValue This parameter contains the new value of the specified environment variable (optional). If this parameter is NULL, the variable is deleted from the environment of the current process.

Example

dcltrans
  transaction TMain
  var
    hFile      : number;
    hProcessId : number;
    nStatus    : number;
    nRead      : number;
    sData      : string;
  begin
    // Create process and start it up...
    hProcessId := ProcessInitialize ("application1.exe", PROCESS_DETACHED,
                    "", "c:\\temp\\","c:\\temp\\out.txt");
    ProcessSetEnv(hProcessId, "temp","c:\\temp\\");
    ProcessStart(hProcessId);

    // Wait for process to finish
    Wait(25.0);

    // Kill the process if it hasn't finished yet
    nStatus := ProcessGetState(hProcessId);

    if (nStatus <> PROCESS_STATE_FINISHED) then
      ProcessKill(hProcessId, PROCESS_KILLSINGLE);
    end;

    // Read the output of the process, written to a file
    FOpen(hFile, "c:\\temp\\out.txt", OPT_FILE_ACCESS_READ, OPT_FILE_OPEN); 

    while FRead(hFile, sData, 1, nRead) do
      Write(sData);
    end;

    FClose(hFile);
    ProcessFree(hProcessID);
  end TMain;