方法很简单 就是先创建一个空窗口 然后用SetParent将指定进程的全部窗口重新设置到我们创建的空窗口上,然后卸载窗口K掉进程.
OK 首先创建2个窗口 一个按钮 一个编辑框 编辑框用来输入进程PID的.
然后申请API 很简单 就2个.
[e].DLL命令 取窗口进程ID_, 整数型, "user32.dll", "GetWindowThreadProcessId"
.参数 窗口句柄, 整数型
.参数 进程标识符, 整数型, 传址
.DLL命令 置父窗口_, 整数型, "user32", "SetParent"
.参数 子窗口句柄, 整数型
.参数 父窗口句柄, 整数型
下面就是完整的代码
.版本 2
.支持库 eAPI
.局部变量 进程句柄, 文本型, , "0"
.局部变量 计次, 整数型
.局部变量 进程PID, 整数型
载入 (窗口1, , 假) '最好把窗口1的可视改成假
进程句柄 = 取所有窗口列表 ()
.计次循环首 (取数组成员数 (进程句柄), 计次)
取窗口进程ID_ (到数值 (进程句柄 [计次]), 进程PID)
.如果真 (进程PID = 到数值 (编辑框1.内容))
置父窗口_ (到数值 (进程句柄 [计次]), 窗口1.取窗口句柄 ())
.如果真结束
.计次循环尾 ()
窗口1.销毁 (真)[/e]运行下冰刃,看下PID然后输入到编辑框中看看会怎么样~
不过缺陷也有..首先来说 目标进程必须有窗口.其次 就是必须要找到对方窗口的句柄. |