如何在 Windows 中终止特定线程?

如何在 Windows 中终止特定线程?

explorer.exe 进程有一个线程,其“起始地址”以“windows.immersiveshell.serviceprovider.dll”开头。它占用大量处理能力。此外,从睡眠状态唤醒后,它会生成三个“MetroGhostWindow”类窗口,这些窗口位于 Alt+Tab 对话框中。

使用 Process Hacker 终止线程效果很好,可以释放资源。但是有没有命令行工具可以做同样的事情?

答案1

好吧,这个 vbs 脚本帮我完成了这个任务。

将其快捷方式放入自动启动文件夹。将其与此脚本实用程序 nopey 和 processhacker 放在同一个文件夹中。

Set objShell = CreateObject("WScript.Shell")
Set objWshScriptExec = objShell.Exec("nopey.exe list threads Explorer.exe")
Set objStdOut = objWshScriptExec.StdOut

Do 
strLine = objStdOut.ReadLine
pos=Instr(strLine, "00000000")
If pos<>0 And Op=0 Then Exit Do
Op=Instr(strline, "TID")
Loop

Tid=CLng("&H" & (Mid(strLine, 4,4)))

'WScript.Echo Tid

objShell.Run "ProcessHacker.exe -c -ctype thread -cobject " & Tid & " -caction terminate", 0

它还会禁用所有 Metro 功能,直到 Explorer 重新启动。

PS 这是包含所有必需内容的 zip 存档。只需解压并运行即可。

http://www.eightforums.com/attachments/customization/67840d1462474574-there-way-disable-metro-interface-metrokill.zip

答案2

您可以为 PH(Process Hacker)创建命令行参数。

你可以做ProcessHacker.exe -c -ctype thread -cobject 1424 -caction terminate

您可以使用以下方式获取 ID进程探索器找到要结束的线程的 TID(线程 ID)。为此,您可以右键单击“进程”>“属性”,然后就可以看到要结束的线程。

例如,TID 是7924

显示您要结束的话题的 TID

相关内容