Using C++
posted on 2010-04-16 18:46 codejie 阅读(586) 评论(11) 编辑 收藏 引用 所属分类: 轮子精神
用spy++抓一下这个控件的HWND,class,name之类的信息看看?可能不需要用class来抓,最好用名字来获得。 HWND hwnd = GetWindow(NULL, _T("name")); if( !hwnd ) AfxMessageBox(_T("can't find the handle!")); 某次要抓资源管理器的右边那个列表的hwnd,就是这样的,发现要向下recursion好多层才找到。 回复 更多评论
@Fred我已经Enum出来所有的了HWND,每个都尝试了一下,都返回0,真的有点怀疑不是LIST类了。 回复 更多评论
@codejie 原来你想跨进程操作,这个好像不能直接进行。 需要先将一个内存空间注入该进程,然后该进程响应你发送的这些消息(函数),其返回结果放入这个“内存空间”,你的进程才能从该“内存空间”中获得。 参考: Stealing Program's Memory http://www.codeproject.com/threads/int64_memsteal.asp 回复 更多评论
@Fred但是对于‘EDIT’控件的操作就是OK的,比如 ::SendMessage(hedit, WM_GETTEXT, 64, (LPARAM)buf);我看看你说的这个先,谢了。 回复 更多评论
@Fred我还没有到取TEXT这一步,取Count的时候就返回0了,理论上看应该还没有设计内存分配的问题。 回复 更多评论
那个长列表是自绘的吧,不然系统默认那个在有大量记录时性能会变很差 回复 更多评论
@missdeer很可能。。我甚至怀疑是基于IE Server的。。。 回复 更多评论
@codejie我估计不会是IE Server的,IE装载一个大文件的性能也不行 回复 更多评论
@codejie如果是IE Server的就反而容易了,哈哈,IHTMLDocument2接口很好用。你可以用spy++看看啊 回复 更多评论
@missdeer你猜得对,不是IE的,我测试不行。。。放弃了~SPY++看过,类名是‘‘Lingoes_ListKey“ 回复 更多评论
大神,Lingoes_ListKey的基类是listbox还是listview,上述问题有后续么。。。 回复 更多评论