用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 没有执行成功?
解决方案 »
- delphi下有什么工作流控件?
- 求一条高效的SQL语句!!!!!
- 想要一个传真但印机,可是不怎么懂delphi,1200分求购
- 如何在程序里面实现将机器上的隐藏文件夹全部隐藏的功能
- 请教powerdesigner是什么?
- TListView的FindData的用法!
- 如何在delphi中调用外部可执行文件
- 见经常有人问到,就做了2个简单的MODEM来电显示例子源码下载,分别使用MSCOMM和APRO控件.
- 如何通过TreeView动态创建PopupMenu?
- 关于串口问题:我用Ms的Mscomm控件来一次传送一个字符串,字符串有118个字符,范围为0~255,经常会在中间出错
- 加急,小妹求助电子白板程序一个,望高手大虾帮忙!!!
- 关于数据导到EXCEL表中怎么实现
但让PB程序得到焦点后,又返回为 True 了。为什么?我在PB程序中采用Timer发现,不论得到焦点还是失去焦点,IsWindow(hwnd) 都返回 True。
在 HookProc 回调函数中:
ShowMessage(IntToStr(HInstance)); //焦点程序窗口改变,其值随之改变,为何?
ShowMessage(hwnd); //调用该DLL的PB程序,如果有焦点,则<>0,而无焦点时=0;Why?