怎样实时监控QQ聊天窗口中的聊天记录编辑框中的内容变化(50分)

  • 主题发起人 主题发起人 我爱PASCAL
  • 开始时间 开始时间

我爱PASCAL

Unregistered / Unconfirmed
GUEST, unregistred user!
怎样实时监控QQ聊天窗口中的聊天记录编辑框中的内容变化

[:)]也就是说,对方发来一个消息,聊天记录编辑框中的内容就有变化,这时触发程序的某个
函数去取得聊天记录编辑框中的内容.取得聊天记录编辑框中的内容的代码我已有了,
只需反映变化的代码.
是否用hook,我不会,
如果您贴出代码,成功后,200分送到您帐上.
[^]
 
http://www.delphibbs.com/delphibbs/dispq.asp?lid=3410282
也许有帮助
 
可以每隔一段时间就去获取编辑框中的内容,来监视变化。
 
:大唐电信
这个方法太土,占cpu资源,
试想qq的聊天记录窗口,如有好友发来消息,它的内容就会变化
这时唤醒我的程序,

uiit的贴子是说怎样得到edit中的text,这个我会了,我想问的是
这个hook如何编?
 
我昨天就看到了,但是明显不能得分3
 
看到了还要能解答山
 
我没做过hook类的东东,所以答不了,不过我的工资早就超过3K了,呵呵……
麻子兄对hook最熟了,问他好了。
 
hook?
监视编辑框内容的变化 ,应该HOOK什么?
 
我知道有鼠标钩子,键盘钩子,但没用过,直觉感觉这个问题可以用钩子来解决,不知对否?
 
每个Edit在发生变化的时候都会发出一个消息驱动,二种方法,一是钩住键盘钩子,但是这种情况有一个问题,如果对方的Edit不是由键盘输入的呢? 另一种就是把系统的消息钩住,然后过滤出Edit变化的消息,至于是什么消息,楼主可以查一下Edit的OnChange是怎样触发的

还有,3k的工资好像太低了,都是搞技术的别,别让技术太掉价了,唉
 
楼主,我也想学学。
 
多谢赐教,我一定要把这个东西搞懂。
 
根据诸葛白痴的提示,查了一下,
delphi是这样触发onchange事件的,不知道查的对不对?
procedure TCustomEdit.CNCommand(var Message: TWMCommand);
begin
if (Message.NotifyCode = EN_CHANGE) and not FCreating then Change;
end;

WM_COMMAND,wParam的高位是EN_CHANGE 触发onchange事件
 
用WH_CALLWNDPROCRET钩子
 
3k太少 木有兴趣 [:D][:D]
 
3k,好多哦。我现在才2.5k,还是北京。
郁闷。
当时来北京签合同时可高兴了,毕竟我在山东才900。
现在才知道这点钱房子都快住不起了。
要求加薪老板说会给提成。
想要跳槽还有一个项目,啊,还有3年的合同,还没有保险,不供应午餐...
哎~~~早知道不签合同了。。。
郁闷中.....
羡慕别人中......
//忘了说了问题了。
hook edit的事件消息 钩子类型用WH_CALLWNDPROC好了,主要
拦截edit的事件消息,EN_CHANGE(见messages.pas),拦截到了就
再sendmessage wm_gettext。
lz看看行不行?
帮助见msdn:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/winui/windowsuserinterface/windowing/hooks/hookreference/hookfunctions/setwindowshookex.asp
 
诸葛白痴, 说的好!向你学习!技术是无价的!
 
诸葛白痴,有的意思!我也在想楼主为什么要选这一种方法,可以他想表达其它的一些功能,只是举了个不恰当的例子吧!
 
以前有写过在一个进程中用hook监控键盘.
在回调函数中判断
if screen.ActiveForm.ActiveControl.ClassName='TEdit' then
begin
if (Tedit(........ActiveControl).ReadOnly = False) //非只读
and (Tedit(........ActiveControl).Enabled= True) ...按下了可显示的字符 then
begin
//被改变了
end;

end;

不知道 在全局 hook 中行不行. 很久没弄了,只记大概是这样的
 

Similar threads

后退
顶部