和其他应用交互的问题(100分)

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

xuwh

Unregistered / Unconfirmed
GUEST, unregistred user!
1。有没有办法修改其他应用的MEMO之类的控件里的信息?发WM_SETTEXT消息不行。<br>2。对EDIT这样的东东我可以用SENDMESSAGE WM_GETTEXT来获得数据,但是对一些多行的<br>&nbsp; &nbsp;东东,比如说YAHOO MESSENGER消息列表框,好像怎么也拿不到。这是为什么?那个子<br>&nbsp; &nbsp;控件好像是个"Internet Explorer_Server"的类。<br><br>紧急求助,多谢多谢!
 
用getcursorpos取得鼠标所在的point<br>用windowfrompoint取得鼠标所在窗口的句柄(注意此处如果指向某一memo,此时句柄就是此MEMO)<br>然后用下面的任一种方法即可取得想要的内容<br>sendmessge(hwnd,wm_gettext,constlength,integer(@txt))<br>getwindowtext(edit1.handle,txt,constlength);<br>此处我constlength是表示定义的长度<br>
 
可能是我说的CTRL比较特别。这两种方法我早就试过,不行。取出来是空的。<br>可以参考YAHOO MESSENGER的消息窗口(不是输入的窗口)
 
没有人做过这样的事情么?<br>我拿SPY++看了YAHOO MESSENGER的消息列表框,在ATL:005480E0类下面是<br>Internet Explorer_Server类。我取了窗口HANDLE,又用了两次FindWindowEx,得到<br>Internet Explorer_Server类的HANDLE。向它发WM_VSCROLL是可以的,但是发WM_GETTEXT<br>就得到空串返回。尝试发EM_GETLINE也不行。<br>但是对MSN Messenger的消息列表框的RichEdit20W类就可以直接发WM_GETTEXT获得里面的<br>消息信息,是带回车换行的一个大字符串。这个类也可以响应WM_VSCROLL消息。<br>搞不懂两个有什么区别呢?<br>还有就是对其他应用的不可编辑区域,象上面举的两个列表框,难道不能发消息修改它们<br>的内容么?例如对MSN Messenger的消息列表框的RichEdit20W类,我发WM_GETTEXT获得字<br>串以后做了一定修改,然后发WM_SETTEXT,结果没有任何反应。如果可以用HOOK来实现,<br>那么需要HOOK什么类型的消息呢?用SPY++监听了很多消息,不知道应该监控哪一个。
 
还没有人来。。。<br>难道是问题太弱智?[:D]
 
1.参见MSDN里面关于Memo的消息说明,它和普通Edit略有区别<br>2.这个是IE控件,通过常规方法是取不到内容的,你可以尝试给它模拟Ctrl+A, Ctrl+C按键,然后从剪贴板取内容。
 
待会试试。不过,更重要的是有没有方法改它的内容?[:D]
 
后退
顶部