用Delphi写了一个Hook.DLL供PB使用。其中Hook的回调函数中有:
SendMessage(hwnd,msg,wparam,lparam);
// hwnd 是通过PB程序传递的一个窗口句柄
// msg = WM_USER + 20PB中自定义事件pbm_cumstom21(与DLL中的msg参数对应)。问题:
在PB程序拥有焦点时,DLL 中的 SendMessage 到PB程序中,能执行 pbm_custom21,
但如果PB程序无焦点时,似乎 SendMessage 没有送到 PB 程序的hwnd,没有执行pbm_custom21事件。但 SendMessage 紧跟后面的 MessageBeep(1) 执行了。SendMessage 没有执行成功?
SendMessage(hwnd,msg,wparam,lparam);
// hwnd 是通过PB程序传递的一个窗口句柄
// msg = WM_USER + 20PB中自定义事件pbm_cumstom21(与DLL中的msg参数对应)。问题:
在PB程序拥有焦点时,DLL 中的 SendMessage 到PB程序中,能执行 pbm_custom21,
但如果PB程序无焦点时,似乎 SendMessage 没有送到 PB 程序的hwnd,没有执行pbm_custom21事件。但 SendMessage 紧跟后面的 MessageBeep(1) 执行了。SendMessage 没有执行成功?
解决方案 »
- 不通过双击“关闭”按钮添加过程代码,直接在unit写过程代码,但是运行出问题了
- 怎么给另一个程序发送消息执行指定的操作?
- 大家好,请帮我看看这个函数,看毛病出在那里!(这是个很实用的函数,可能对大家有点用!)
- 帮忙分析一下代码有什么错误~~~~~~在线等~~~~~~~~~~~
- 大图标、小图标、详细列表是如何实现的??
- Could you help me,please!
- 为何delphi6装起后只有delphi可用,bde admin和sql explorer等都用不了??重转痛苦啊
- 如何实现.ini文件在access数据库中的备注字段的存取(在线等)
- 如何在Windows2000/XP下取得系统BISO的信息?请高手进来解答。
- 我在delphi中测试ocx,可是修改了ocx后,该怎样重新加载此ocx呢,为何始终是老的?
- 加急,小妹求助电子白板程序一个,望高手大虾帮忙!!!
- 关于数据导到EXCEL表中怎么实现
但让PB程序得到焦点后,又返回为 True 了。为什么?我在PB程序中采用Timer发现,不论得到焦点还是失去焦点,IsWindow(hwnd) 都返回 True。
在 HookProc 回调函数中:
ShowMessage(IntToStr(HInstance)); //焦点程序窗口改变,其值随之改变,为何?
ShowMessage(hwnd); //调用该DLL的PB程序,如果有焦点,则<>0,而无焦点时=0;Why?