如何结束无响应的进程 ( 积分: 150 )

  • 主题发起人 主题发起人 catbrother
  • 开始时间 开始时间
C

catbrother

Unregistered / Unconfirmed
GUEST, unregistred user!
如题<br>哪位能提供结束进程的代码?<br>还有,如果这个进程已经是无响应的进程,执行代码结束是不是会弹出界面,让用户来点击结束进程?如果会弹出这个界面,能不能用程序来自动完成?
 
让进程自杀?如果没响应了是没办法的。
 
不是自杀<br>是结束指定进程,而且要结束的这个进程通常是无响应状态
 
exitproscess:终止一个进程<br>terminateprocess:强行结束一个进程
 
//uses&nbsp;tlhelp32<br><br>function&nbsp;KillTask(ProcName:&nbsp;string):&nbsp;Integer;<br>const<br>&nbsp;&nbsp;PROCESS_TERMINATE&nbsp;=&nbsp;$0001;<br>var<br>&nbsp;&nbsp;ContinueLoop:&nbsp;BOOL;<br>&nbsp;&nbsp;FSnapshotHandle:&nbsp;THandle;<br>&nbsp;&nbsp;FProcessEntry32:&nbsp;TProcessEntry32;<br>begin<br>&nbsp;&nbsp;Result&nbsp;:=&nbsp;0;<br>&nbsp;&nbsp;FSnapshotHandle&nbsp;:=&nbsp;CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,&nbsp;0);<br>&nbsp;&nbsp;FProcessEntry32.dwSize&nbsp;:=&nbsp;SizeOf(FProcessEntry32);<br>&nbsp;&nbsp;ContinueLoop&nbsp;:=&nbsp;Process32First(FSnapshotHandle,&nbsp;FProcessEntry32);<br><br>&nbsp;&nbsp;while&nbsp;Integer(ContinueLoop)&nbsp;&lt;&gt;&nbsp;0&nbsp;do<br>&nbsp;&nbsp;begin<br>&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;((UpperCase(ExtractFileName(FProcessEntry32.szExeFile))&nbsp;=<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;UpperCase(ProcName))&nbsp;or&nbsp;(UpperCase(FProcessEntry32.szExeFile)&nbsp;=<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;UpperCase(ProcName)))&nbsp;then<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Result&nbsp;:=&nbsp;Integer(TerminateProcess(<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;OpenProcess(PROCESS_TERMINATE,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BOOL(0),<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FProcessEntry32.th32ProcessID),<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0));<br>&nbsp;&nbsp;&nbsp;&nbsp;ContinueLoop&nbsp;:=&nbsp;Process32Next(FSnapshotHandle,&nbsp;FProcessEntry32);<br>&nbsp;&nbsp;end;<br>&nbsp;&nbsp;CloseHandle(FSnapshotHandle);<br>end;<br><br>例如:KillTask('notepad.exe');
 
后退
顶部