怎么读取别一个已知名字的程序上的一个未知控件(类似richedit)上的文本内容 ( 积分: 200 )

  • 主题发起人 主题发起人 wlyft
  • 开始时间 开始时间
W

wlyft

Unregistered / Unconfirmed
GUEST, unregistred user!
怎么读取别一个已知名字的程序上的一个未知控件(类似richedit)上的文本内容
 
怎么读取别一个已知名字的程序上的一个未知控件(类似richedit)上的文本内容
 
拜托了!<br>谢谢大家!!!<br>QQ号是55134332
 
Hnd:=findwindow(Nil,pchar(edit1.text)); &nbsp; //查找是不是有'Tform1'的类名的窗口<br>hnd2:=FindWindowEx(hnd,0,pchar('tbutton'),nil) ; //查找他上面是不是有'tpagecontrol'的控件<br>getwindowtext(hnd2,str,101);//获得控件标题<br><br>这个getwindowtext 只是获得控制的标题就是控件的Caption,而我想要获得如richedit里面的text如何搞,用哪个函数?
 
再用一个回调函数就可以了<br>BOOL EnumChildWindows(<br> &nbsp; &nbsp;HWND hWndParent, // handle to parent window<br> &nbsp; &nbsp;WNDENUMPROC lpEnumFunc, // pointer to callback function<br> &nbsp; &nbsp;LPARAM lParam // application-defined value<br> &nbsp; );
 
我用SPY看classname是一个AfxWnd42s这种东西他的parent是AfxOleControl42s<br>,不是richedit<br>我已经能读出richedit的内容了!<br>这是AfxWnd42s这种东西上的读不出来,已知这个东东的在DELPHI上的控件是TResScr<br>我要怎么读出这个控件上的文字
 
function EIGetWinText(nHandle: Integer): string;<br> &nbsp; &nbsp; &nbsp;var<br> &nbsp; &nbsp; &nbsp; &nbsp;pcText: array[0..255] of char; &nbsp; // &nbsp; 255<br> &nbsp; &nbsp; &nbsp;begin<br> &nbsp; &nbsp; &nbsp;SendMessage(nHandle, WM_GETTEXT,255, LongInt(@pcText));<br> &nbsp; &nbsp; &nbsp; &nbsp;Result := pcText;<br> &nbsp; &nbsp; &nbsp;end;<br>Var<br>TxtLen:Integer;<br>WinTxt:PChar;<br>Wnd,hnd,hnd2:THandle;<br>P:TPoint;<br>s,wstr:string;<br>str:array[0..100] of char;<br><br>count,i:integer;<br>begin<br>getcursorpos(p);<br>wnd:=windowfrompoint(p);<br><br>Hnd:=findwindow(Nil,pchar(edit1.text)); &nbsp; &nbsp;<br><br>hnd2:=FindWindowEx(hnd,0,pchar(edit2.text),nil) ; &nbsp; <br><br>showmessage(EIGetWinText(hnd2));<br>我用这个方法读出第三方程序上的richedit里面的内容<br>但就是读不出我所说的TResScr上的内容?<br>谁如果要这个有TResScr的程序,我可以发给他<br>帮帮我谢谢啦
 
或者说如何控制TResScr的属性,因为我的最终目地就是想要这个控件上的文字<br>而这个控件有个MSG的属性就可以得到这些文字!<br><br><br>大家帮忙呀,高手们帮帮忙
 
大哥们帮帮忙啊!
 
很明显,你在做一个QQ尾巴,或者广告发送软件!这种东西我也做过,但还是没能解决这个问题,不过告诉你一个提示:WM_GETTEXT对RichEdit是不管用的。<br>还传言FindWindowEx只对NT好使,得用GetWindow或者EnumChildWindows代替,具体我也用不明白,知道了也告诉我一声:)
 
to man8888<br>首先:我不是在做什么个QQ尾巴,或者广告发送软件这种没意义的东西<br>第二:WM_GETTEXT对RichEdit是可以的!我试过是可以的!<br><br>期望有人能帮忙!!!<br>如果有人要这个TResScr控件可以到<br>http://www.usky.com.cn/technic/soft/OCX.zip<br>下载
 
findwindow--&gt;getwindow--&gt;sendmessage(gettext)
 
to kgm <br>你估计没看我上面的代码这个方法我有用过<br>用在RICHEDIT还行,但是用在我说的那个控件是不行的<br>对了那个控制学是可以复制出来的!<br>证明那些字不是画上去的!
 
用SPY读出这个控件是<br>|---AfxOleControl42<br>| &nbsp; &nbsp; |----AfxWnd42<br>|
 
to kgm<br>请详细说明,本人也是个菜鸟
 
楼主:<br>QQ2005里面你打开和某人聊天的窗口,然后你用你的 EIGetWinText 函数得一下消息录入窗口的文字,绝对得不到,我刚试了,全是乱码,因为它是RichEdit,然而普通的Edit、RichEdit20A(也就是其上方的聊天内容滚动窗口)里文字都可以通过这个函数得到!我说的没错,WM_GETTEXT对RichEdit的确无效!
 
to man8888<br>你说得对,只不过我没有对QQ试,我只是对DELPHI的RICHEDIT上试了一下而已!<br>但最终也不是要QQ对话框的,不是想要读取桌面的任意程序的文字,<br>我只想读取我上面提到的那个控件上的文字<br><br>希望各位高手大哥大嫂大娘大爷们搞抬贵指<br>给小弟一点有建设性的办法
 
我看人家做的都是使用线程插入来做的,具体技术我也没有看代码,呵呵,至少给你一个方向
 
俺也是个菜的,有谁懂这个线程插入,线程插入是否能实现我想要的功能?
 

Similar threads

S
回复
0
查看
896
SUNSTONE的Delphi笔记
S
S
回复
0
查看
873
SUNSTONE的Delphi笔记
S
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
后退
顶部