Posted on

Start and kill process in Delphi

var
  PrIn: TProcessInformation;
  StIn: TStartupInfo;
  Res: bool;
  ProcID, Process: Cardinal;

// start
begin
  GetStartupInfo(StIn);
  Res := CreateProcess(PChar('..\Project1.exe'),
    PChar('"command line params"'), nil, nil, False, CREATE_NEW_PROCESS_GROUP,
    nil, nil, StIn, PrIn);
  ProcID := PrIn.hProcess;
  Process := PrIn.dwProcessId;
end;

// kill
begin
  TerminateProcess(ProcId, 0);
end;
Posted on

DLL hell, manifest, side-by-side

DLL Hell is a term for the complications that arise when working with dynamic link libraries (DLLs) used with Microsoft Windows operating systems,[1] particularly legacy 16-bit editions which all run in a single memory space.

Side-by-side technology is a standard for executable files in Windows 98 Second Edition, Windows 2000, and later versions of Windows that attempts to alleviate problems that arise from the use of dynamic-link libraries in Microsoft Windows.

Continue reading DLL hell, manifest, side-by-side