需要一个用来注入的dll(inject.dll)及一个调用程序(caller.exe)
流程: 【程序编程相关:报名机器人】 【推荐阅读:自己编写树(Tree)的封装类】 【扩展信息:DFM文件与XML文件互转】 caller.exe procedure testhook; var pwnd,hchild, hwndinject :hwnd; msg:tmsg; begin //通过窗口标题用findwindow找到要注入的程序的主窗口句柄pwnd pwnd := findwindow(progman,nil); //用findwindowex(hmain,0,nil,nil)找到要处理的子窗口句柄hchild hchild := findwindowex(pwnd,0,nil,nil); //用getwindowthreadprocessid(hchild,nil)找到要注入的线程 dwthreadid := getwindowthreadprocessid(hchild,nil); //调用 inject.dll的setinjecthook方法 setinjecthook(dwthreadid); //等待消息返回 getmessage(msg,0,0,0); //找到注入的窗口 hwndinject:= findwindow(nil,injectform); //发送控制消息,将目标窗体的句柄作为wparam,控制参数以lparam传入 sendmessage( hwndinject, wm_app,hchild,integer(true)); //关闭注入的窗口 sendmessage( hwndinject,wm_close,0,0); //等待窗口关闭 sleep(500); //检查是否成功关闭 ... 下一页