很郁闷,为什么就是得不到对方程序窗口的内容?请高手指教,在线等待 (150分)

  • 主题发起人 主题发起人 xch28
  • 开始时间 开始时间
X

xch28

Unregistered / Unconfirmed
GUEST, unregistred user!
下面的程序可以得到窗口中控件的文本<br>var i:integer;<br>&nbsp; &nbsp; mem:pchar;<br>&nbsp; i := SendMessage(handle,WM_GETTEXTLENGTH,0,0); //handle为得到控件的句炳<br>&nbsp; getmem(mem,i+1);<br>&nbsp; SendMessage(handle,WM_GETTEXT,i+1,LongInt(mem)); //handle为得到控件的句炳<br>&nbsp; shwomessage(strpas(mem)); &nbsp; &nbsp;<br>&nbsp; getmem(mem,0);<br>&nbsp; freemem(mem);<br><br>上面的程序可以顺利得到对方程序中其他控件的内容,比如说richedit,edit等。<br>可是有一个class为Afx:400000:b:10011:9:0(通过spy++得到)的控件却得不到它<br>的内容,它上面也有文字,可以用鼠标选取,并可以复制、设置文字大小等,但<br>就是得不到内容。不知道为什么。郁闷中。。。<br>请高手指教,不胜感激。<br><br>顺便说一下,第一句i的值就为0。
 
没有为什么, 它不响应WM_GETTEXT消息,你用这种办法就得不到它的内容。<br>有可能那个程序是特意不让人这样取数据的。
 
有没有其他方法可以得到内容的。<br>我看金山词霸可以得到这个窗口程序的内容。
 
方法是有的,即在文本显示之前就截获它,亦即要截获TextOut函数
 
呵呵,一样的吗,密码框 还不是 取不出。不过我倒是有办法<br>
 
除了TextOut函数,还有DrawText、DrawTextEx函数。
 
hdloutput是什么???????????????????????
 
金山什么的是拦截API的<br>它不能取得没有显示出来的文本。 要取得整个控件中的文本也比较困难。<br>就象Delphi中的代码编辑器:TEditControl, 你也不能直接取得里面的文本。<br>如果是程序特意要防止你取出里面的文本,就更难了。
 
大家能说明白些吗?<br>
 
来自:foryijian, 时间:2003-5-21 17:52:00, ID:1882982 <br>方法是有的,即在文本显示之前就截获它,亦即要截获TextOut函数<br>&nbsp;<br>怎么截获TextOut函数?不吝赐教。。。<br>
 
http://www.encryptpe.com/bckj.zip<br>HOOK目录。
 
多人接受答案了。
 
后退
顶部