Con ShellExecuteEx sería así:
Código Delphi
[-]
SHELLEXECUTEINFO informacion;
ZeroMemory(&informacion, sizeof(SHELLEXECUTEINFO));
informacion.cbSize = sizeof(SHELLEXECUTEINFO);
informacion.fMask = SEE_MASK_NOCLOSEPROCESS;
informacion.lpVerb = "open";
informacion.lpFile = "calc.exe";
informacion.nShow = SW_SHOWMAXIMIZED;
ShellExecuteEx(&informacion);
Y después, preguntar con WaitForSingleObject como el código de cHackAll...