全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1810
推到 Plurk!
推到 Facebook!

擷取另一個AP上之listview內的內容的問題!

尚未結案
m8815010
版主


發表:99
回覆:372
積分:289
註冊:2003-11-13

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-12-04 14:54:23 IP:61.63.xxx.xxx 未訂閱
拜讀www.ccrun.com,by ccrun(老妖),之读取其他应用程序中ListView中的内容一文,自行做了一個測試。        一開始擷取同一個程式內的form上的listview內之值是大至都ok的,     換取另一個程式內的listview之值都取不出來,一下子實在發現不出     是什麼問題,鎖死扣如下,請益…    void __fastcall TForm1::Button1Click(TObject *Sender) {  //--------------------------------------------------------------//     HWND hwnd=FindWindow(NULL,"test");  HWND lstvwhwnd=FindWindowEx(hwnd,0,"TListView",NULL);  //ShowMessage((LONG)lstvwhwnd);    //--------------------------------------------------------------//     // 得到一個column的caption     LV_COLUMN  pcol;  pcol.cchTextMax=1024;  pcol.mask=LVCF_TEXT;  pcol.pszText="";      ////pcol.iSubItem=0;     ShowMessage(SendMessage(lstvwhwnd,LVM_GETCOLUMN,0,(LPARAM)&pcol));  ShowMessage(pcol.pszText);  ////ShowMessage(pcol.iSubItem);    //--------------------------------------------------------------//     // 得到column的總數     // 直到return value是false為止    //--------------------------------------------------------------//     // 得到item的總數     ShowMessage(SendMessage(lstvwhwnd,LVM_GETITEMCOUNT,0,0));    //--------------------------------------------------------------//     // 得到一個item的內容值     LV_ITEM pitem;     pitem.mask=LVIF_TEXT;  pitem.iItem=0;  pitem.iSubItem=1;  pitem.cchTextMax=256;  pitem.pszText="";     ShowMessage(SendMessage(lstvwhwnd,LVM_GETITEM,0,(LPARAM)&pitem));  ShowMessage(pitem.pszText);    }        測試用listview長像: 請益,謝謝!
joycat
一般會員


發表:4
回覆:6
積分:2
註冊:2004-02-23

發送簡訊給我
#2 引用回覆 回覆 發表時間:2008-09-08 04:23:24 IP:118.171.xxx.xxx 訂閱
老妖 的文章 其實已經寫的很清楚了,
照著他說的做 sysListView TListView 之類的
都能夠把資料拉出來

看你的源碼,你少了一些分配內存的動作
讀取其他程式的ListView ,沒辦法直接存取

必須透過VirtualAllocEx 在對象的所分配的內存中
配置屬於自己的 存儲空間


[code cpp]
LPVOID lpTextRemote= VirtualAllocEx(hProcess,NULL,nMaxLen 1,MEM_COMMIT,PAGE_READWRITE);
LPVOID lpListItemRemote= VirtualAllocEx(hProcess,NULL,sizeof(LVITEM),MEM_COMMIT,PAGE_READWRITE);

[/code]

取得 ListView的行數部分,老妖也用了一個很簡單的 function
[code cpp]
nLVItemCount=ListView_GetItemCount(hWindow);
[/code]
nLVItemCount <== ListView 總共有幾行
hWindow <= ListView 的handle

看您是 卡在哪個部分,您在說清楚些吧
系統時間:2024-04-27 12:27:39
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!