[winAPI]如何找到进程,并杀死它?(50分)

  • 主题发起人 主题发起人 曹晓钢
  • 开始时间 开始时间

曹晓钢

Unregistered / Unconfirmed
GUEST, unregistred user!
如题.<br>已知caption,好像有一个什么函数的.<br>还有,如果这个进程已经出错,弹出关闭窗口了,想杀掉它,怎么办?<br><br>
 
好像是用FindWindow来查找一个窗体, 用CloseWindow或发送一个WM_CLOSE消息来<br>关闭一个窗体<br>function FindWindow(ClassName: pchar; WindowName: pchar): hWnd;<br>function CloseWindow(wnd: hWnd): boolean;
 
如果这个窗口是个子窗口,这样只能关闭此窗口而不能关闭此应用程序。<br>用GetParent可以逐级向上找父窗口,如果返回值为空,说明它就是<br>主窗口。应该关闭主窗口。<br>function GetParent(wnd:hWnd):hWnd;<br><br>其实杀掉进程最好用TerminateProcess,但是必须先取得进程句柄;<br>可我不知道如何通过窗口句柄来取得进程句柄,有谁知道该怎么做?<br>
 
用CloseWindow不好, 最好用PostQuitMessage, (发送WM_QUIT),<br>这样干净利落, :)<br><br>(Xixi, 透露一些Killer技术:<br>依次使用下列WinAPI<br>CreateToolhelp32Snapshot<br>Process32First<br>Process32Next<br>可以得到<br>PROCESSENTRY32结构<br>从中找到您关心的ThreadHandle, or ProcessHandle<br>Then:<br>使用<br>CloseHandle<br>杀人不眨眼!, :)<br>)<br><br>穷啊! :(~~~~~~, 给我一点小分奖励吧!, :)
 
Hehe,<br>找到ProcessHandle后, 最好还是用TerminateProcess干掉它
 
谢谢pegasus,这个函数pegasusCreateToolhelp32Snapshot<br>Process32First<br>Process32Next<br>我倒是知道的,有人写过例子来找所有的进程.<br>知识不知道有closehandle这样的杀手.<br>谢了!<br>
 
不好意思来迟一步!请问又怎么来防止您的程序被TerminateProcess来Kill掉呢?!谢谢!
 
后退
顶部