为什么用GetWindowText 不能获取QQ的richEdit窗口中的内容~ ( 积分: 100 )

  • 主题发起人 主题发起人 ak_2004
  • 开始时间 开始时间
A

ak_2004

Unregistered / Unconfirmed
GUEST, unregistred user!
为什么用GetWindowText 不能获取QQ的richEdit窗口中的内容~<br>窗体的句柄没问题,因为向里面写信息都没问题~<br>谢谢指点
 
为什么用GetWindowText 不能获取QQ的richEdit窗口中的内容~<br>窗体的句柄没问题,因为向里面写信息都没问题~<br>谢谢指点
 
似乎应该可以
 
很有可能获取不到的<br> QQ作了一些处理的
 
通过SendMessage向此窗口发送WM_GETTEXT或EM_GETLINE消息
 
// 获得窗口文本<br>function GetWndText(hWnd: HWND): String;<br>Var<br> &nbsp;Ret:LongInt;<br> &nbsp;mText:PChar;<br> &nbsp;Buf:Integer;<br>begin<br> &nbsp;Ret:=SendMessage(hWnd,WM_GETTEXTLENGTH,0,0)+1;<br> &nbsp;GetMem(mText,Ret);<br> &nbsp;try<br> &nbsp; &nbsp;Buf:=LongInt(mText);<br> &nbsp; &nbsp;SendMessage(hWnd,WM_GETTEXT,Ret,Buf);<br> &nbsp; &nbsp;Result:=StrPas(mText);<br> &nbsp;finally<br> &nbsp; &nbsp;FreeMem(mText,Ret);<br> &nbsp;end;<br>end;
 
var<br> &nbsp;S :pchar;<br>begin<br> &nbsp; GetMem(s,1024);<br> &nbsp; GetWindowText(RichEdit1.Handle, s, 1024);<br> &nbsp;showmessage(s);<br>end;
 
这个我也试过,向qq的聊天richedit发送text但是失败,<br>是不是qq做了拦截?<br>获取文本就不知道乐,没有试过<br>可以看看这篇文章<br>http://www.chinaaspx.com/archive/delphi/15497.htm
 
我用的QQ版本是2005 beat2<br>向聊天窗口中写入信息没有错,但是却不能把信息读出来
 
很久以前听说过<br>qq升2003版开发时,根本就没有再用普通的TEXT控件<br>你当然get不过来了
 
[:(]不好意思,得到的是乱码,晕4了~~!<br>顶!
 
这是很简单的问题, 在类中 屏蔽 WM_GETEXT, 就行了。<br>不信你继承于 TRichEdit 类 试试。
 
to xuxiaohan:<br> &nbsp;恩,确实是那么回事。<br> &nbsp;但是我看见网上有软件能实现得到richEdit中的内容啊(没有版本限制),不知道他又是怎么实现的?<br><br>注:我不是楼主,我对此问题很感兴趣。
 
我们使用getwindowtext函数来获取控件的文本信息,而这个api也是通过发送WM_GETTEXT消息来实现的,只要你子类化或者超类化控件,截获这个消息的响应或者让它不正确相应,就可以达到这个效果了^_^
 
我晕4,如果那么实现那qq自己本身又是怎么得到richEditl里的内容的呢?
 
看刘麻子的代码,他很有研究
 
to:ak_2005<br>qq会判断消息是由谁发出的。
 
麻烦大家先实验下吧<br>实验出真知
 
我原来做了一个,获取没什么问题,倒是设置字符不行。
 
那按照这种说法,也就是没办法取得其中的内容吗?<br>不知道大家看过一个见QQ-msg的软件没有,它就能获得本地的聊天信息,我想它不可能<br>去截获网络数据包吧,那样的话,QQ数据应该是加密过的,他还要解密,那么不同的<br>QQ版本加密也应该不同,但是它好象并不是针对某个版本才行。所以我认为它可能是<br>通过监视本地QQ窗体,然后在发送信息时,取得内容的。不过我试了很多方法都不行<br>,还请各位大虾指点!
 
后退
顶部