Using C++
posted on 2010-04-16 18:46 codejie 閱讀(597) 評論(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,上述問題有后續么。。。 回復 更多評論