作者: wayjj (還是買ASUS比較安心) 看板: programming
標題: 請教Windows的Listview
時間: Tue Jun 26 10:40:04 2001
各位 Windows programming 的高手,如果在 Win32 下有一隻 GUI 為 dialog based
AP,名為 ap1。 在這 ap1 中我有個 ListView control。
現在我有另一隻 ap2 ,想要抓 ap1 的 ListView 內的 Listitem 的 text 內容,請問
這樣 跨 AP 的 access 是被允許的嗎 ?
我知道用 ListView_GetItemText 中的 buffer 會有 memory space 不同的問題
但是 如果是 Edit control ,我 try 過用 WM_GETTEXT 是可以做到的,我猜 Windows
有處理過,但 Listview 我不管用 MACRO ListView_GetItemText 或是 Message
LVM_GETITEMTEXT 都是不行的。請問這種不同 AP 之間的 access 有什麼方法呢 ?
PS. 有個先決條件是 ap1 不是我寫的,所以我沒辦法在 ap1 作一些 IPC 的手腳 ...
謝謝各位先進的指點 !!
--
※ Origin: 楓橋驛站<bbs.cs.nthu.edu.tw> ◆ From: itrifw.itri.org.tw
ListView_GetItemText 傳回的是一個pointer.
而這個pointer指向的是屬於ap1的位址,
你在ap2存取同樣的位址當然拿不到東西
解決的方法.. 我想到一個方法, 不過我沒實際試過
就是用ReadProcessMemory去讀那一段位址.
第二個方法我試過是可行的~ 但是有點像是殺雞取卵...
用Hook掛進ap1去執行,因為此hook function將會在ap1的address中執行
因此hook function可以讀得到ap1所有位址的資料,再過任何inter-process的
communication機制回傳給ap2即可~
不知道有沒有人有更簡便的方法呢?
ps : GetWindowText之所以可行是因為windows對GetWindowText有做特別的處理
--
※ Origin: 楓橋驛站<bbs.cs.nthu.edu.tw> ◆ From: 211.21.191.127
我在試試,謝謝 ...
> 第二個方法我試過是可行的~ 但是有點像是殺雞取卵...
> 用Hook掛進ap1去執行,因為此hook function將會在ap1的address中執行
> 因此hook function可以讀得到ap1所有位址的資料,再過任何inter-process的
> communication機制回傳給ap2即可~
應該可行,但我希望寫一個能跨 NT / WinCE 皆可執行的 code ...
而 CE 不支援 Hook ..
> 不知道有沒有人有更簡便的方法呢?
> ps : GetWindowText之所以可行是因為windows對GetWindowText有做特別的處理
非常感謝您,我會再試試
--
※ Origin: 楓橋驛站<bbs.cs.nthu.edu.tw> ◆ From: itrifw.itri.org.tw