ProcessFree Function

Action

Frees the memory allocated by ProcessInitialize for a process specified by its handle, hProc.

Include file

Kernel.bdh

Syntax

ProcessFree( in hProc  : number ): boolean;

Return value

  • true if successful

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

Parameter Description
hProc The handle that identifies the process. It is returned by the ProcessInitialize function.

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;