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