public void Start(ProcessToBeHookedOnStart aProcess, Action <IRunningProcess> onBeforeProcessStarts) { object continueEvent; var newSuspendedProcess = _manager.CreateProcess(aProcess.Path, true, out continueEvent); var processWasCreatedSuccessfully = newSuspendedProcess != null && Convert.ToUInt64(continueEvent.ToString()) != 0; if (!processWasCreatedSuccessfully) { return; } var processToBeRun = CreateConsoleProcessFrom(newSuspendedProcess); onBeforeProcessStarts(processToBeRun); _manager.ResumeProcess(newSuspendedProcess, continueEvent); }
private ProcessToBeHookedOnStart CreateProcessToBeHookedFrom(string aPath) { var processToBeHookedOnStart = new ProcessToBeHookedOnStart(aPath, _spyManager, _platformBits); return(processToBeHookedOnStart); }