如何在仅具有API函数的Windows上按名称终止进程?
答案 0 :(得分:1)
如果通过杀戮你的意思是以极端的偏见终止,那么theres总是TerminateProcess。如果你能找到另一种方式(例如将WM_CLOSE发布到主窗口),我建议不要使用它,因为当你调用TerminateProcess时加载的DLL没有正确卸载,所以使用的资源可能不会被释放。
真正的问题是如何从名称到进程ID,这通常涉及
EnumProcesses()
EnumProcessModules()
GetModuleFileNameEx()
GetModuleBaseName()
并将生成的基本模块名称与您要查找的内容进行比较。但是,在系统上执行的模块名称可能不止一个。在这种情况下,您如何区分实例?
答案 1 :(得分:1)
killall yourprocess
http://en.wikipedia.org/wiki/Killall(请注意,这仅适用于Linux,因为您尚未指定操作系统)
答案 2 :(得分:0)
在cmd窗口中,您可以使用taskkill /F /im cmd.exe
来终止所有cmd.exe程序。
/T
标志告诉taskkill强制终止进程,而
taskkill /im cmd.exe
通过发送一个终止信号来优雅地关闭它。
可以找到有关taskkill的更多信息here
另一个终止流程的好工具是wmic
答案 3 :(得分:-1)
假设您的意思是在Windows上,请使用ZwQuerySystemInformation和TerminateProcess。请参阅此处获取详细示例:How to kill a process given a name