windows - taskkill 和 taskkill/f 的区别

标签 windows winapi internals

开启 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 无条件终止进程。

您可以尝试以下实验:

  1. 启动 notepad.exe 并在记事本窗口中输入几个字符
  2. 键入 taskkill/f/im notepad.exe。记事本将立即退出

现在这样做:

  1. 启动 notepad.exe 并在记事本窗口中输入几个字符
  2. 键入 taskkill/im notepad.exe。记事本不会立即退出,但会退出询问您是否要保存修改。

关于windows - taskkill 和 taskkill/f 的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32346219/

相关文章:

c++ - 如何使用 WinAPI 重启 Windows 8/10 并进入高级启动选项?

linux - 什么是 unix/linux 内部机制?

java - findLoadedClass() 返回 null

java - 更改 IE 主页

c++ - 删除 HBITMAP 会在运行时导致访问冲突

c++ - 如何在 Windows 上将 BYTE 数组映射为 FILE *

c++ - WndProc Hook 未从菜单接收 WM_COMMAND

c - 将 HANDLE 传递给 DLL

windows - 操作系统/Windows 内部视频

php - 从 PHP 文件调用 Windows 程序(通过命令提示符)