ProcessKill Function

Action

Kills a single process (PROCESS_KILLSINGLE) or a list of processes (PROCESS_KILLALL).

Include file

Kernel.bdh

Syntax

ProcessKill( in hProc  : number,
             in nFlags : number optional ):nboolean;

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.
nFlags

Can be one of following values :

  • PROCESS_KILLSINGLE : Only the process specified by hProc is killed.

  • PROCESS_KILLALL : All processes that were started after the process (specified by hProc ) are killed.

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 afile
    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;