Разница между TerminateProcess и Taskkill заключается в том, как они завершают процессы:
- TerminateProcess принудительно завершает процесс. 14 При этом процесс не уведомляется о закрытии — его просто останавливают и удаляют из памяти. 1
- Taskkill завершает процесс по его идентификатору (PID) или имени образа. 4 По умолчанию отправляет сообщение WM_CLOSE главному окну процесса, и если программа не завершает работу через некоторое время, пользователю предлагается принудительно завершить её. 3
Таким образом, TerminateProcess использует более жёсткое завершение процесса, в то время как Taskkill с опцией /F завершает его принудительно. 13