如何控制dll中的窗口生成?(200分)

  • 主题发起人 主题发起人 gaolover
  • 开始时间 开始时间
G

gaolover

Unregistered / Unconfirmed
GUEST, unregistred user!
type <br>&nbsp; TFrmHook = class(TForm) &nbsp;//dll工程中的窗口 <br><br><br>//HOOK注入进程 <br>function HookProc(nCode:Integer;WParam: WPARAM;LParam:LPARAM):LRESULT;stdcall; <br>begin <br>&nbsp; if wParam=VK_HOME then &nbsp;//HOME键 <br>&nbsp; begin <br>&nbsp; &nbsp; if not ( Assigned(FrmHook)) &nbsp;then <br>&nbsp; &nbsp; &nbsp; FrmHook:=tFrmHook.Create(Application); <br>&nbsp; &nbsp; if FrmHook.Showing then <br>&nbsp; &nbsp; &nbsp; FrmHook.hide <br>&nbsp; &nbsp; else <br>&nbsp; &nbsp; &nbsp; FrmHook.Show; <br>&nbsp; end; <br><br>end; <br><br>//上面的代码有个问题,当dll注入到多个目标进程之后.按home键只能呼出一个FrmHook. <br>请问如何能有效解决,在多个目标进程中,分别按HOME键都能呼出dll窗口
 
继续求解!继续求解!继续求解!
 
楼主,代码放全些上来啦。。。
 
你的FrmHook在哪定义的? 如果是全局的,那么全程序肯定只有一个TFrmHook的实例存在,<br>我晕,你的在多个目标进程中怎么讲?<br>一个操作系统中多个程序 就像打开多个记事本? 如果是那样的话,你需要注册全局的钩子hook,那样才能随时出现,然后再决定你是每次出现创建一个新窗口,还是多个地方调用同一个窗口。<br>如果你是在一个进程的多个form中调用,看你的意思好像是想这样吧,然后就实现一个TFrmHook的实例,在好多地方调用? 是不是这样?如果是,那就做成全局
 
后退
顶部