Так как у вас есть hProcess
на руках, вы можете просто использовать это:
BOOL ok = TerminateProcess (hProcess, exit_code);
Где exit_code
может быть чем угодно (постарайтесь сделать это осмысленным, если что-то ждетпроцесс и хотел бы знать, почему он вышел).
Если вы не хотите делать это таким образом, вы можете использовать OpenProcess
:
HANDLE hProcess = OpenProcess (PROCESS_TERMINATE, FALSE, process_id);
if (hProcess)
{
BOOL ok = TerminateProcess (hProcess, exit_code);
CloseHandle (hProcess);
}
else
{
DWORD err = GetLastError ();
...
}
Вам нужно проверить, что OpenProcess()
успешно, потому что (помимо прочего) у вас могут не быть достаточных прав доступа, и вам нужно закрыть hProcess
после того, как вы покончили с этим, даже если вы убили процесссама.
Документация для TerminateProcess()
здесь .