Microsoft Technet上,我可以读取到taskkill具有/f参数来强制终止进程。我不知道这在内部做什么,以了解这种行动的影响。
taskkill(不带/f)不只是向流程发送WM_CLOSE消息,否则我的应用程序会询问是否保存打开的文档。这使我假设它已经在TerminateProcess (MSDN)级别上运行了。但是,TerminateProcess没有用于强制杀死的参数。

那么,taskkilltaskkill /f在内部做什么?

我阅读了相关问题Difference between C# Process.Kill() and Taskkill,但没有答案。

最佳答案

很有可能taskkill /f使用 TerminateProcess ,而没有taskkill/f只会发布WM_QUIT消息(不是WM_CLOSE)。文档说TerminateProcess无条件地杀死了进程。

您可以尝试以下实验:

  • 启动notepad.exe并在notpad窗口中键入一些字符
  • 键入taskkill /f /im notepad.exe。记事本将立即退出

  • 现在执行以下操作:
  • 启动notepad.exe并在notpad窗口中键入一些字符
  • 键入taskkill /im notepad.exe。记事本不会立即退出,但会退出,询问您是否要保存修改。
  • 关于windows - taskkill和taskkill/f之间的区别,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32346219/

    10-13 00:05