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

請問有何軟體可以從程式的資料欄位抓取資料

缺席
energybody
一般會員


發表:44
回覆:32
積分:15
註冊:2007-04-12

發送簡訊給我
#1 引用回覆 回覆 發表時間:2007-07-12 03:07:08 IP:61.62.xxx.xxx 訂閱
小弟想從一個執行中的程式的資料欄位抓取資料, 這個程式的資料欄位可以用 CTRL-C copy 到 Clipboard, 再用 CTRL-V paste 到 TXT 黨, 但是一次只能 copy 一個資料欄位, 也不能用 Multi-Select 來選取多個資料欄位, 請問有沒有軟體可以設定或可以用 Multi-Select 來一次從執行中的程式中抓取多個資料欄位.
Stallion
版主


發表:52
回覆:1600
積分:1995
註冊:2004-09-15

發送簡訊給我
#2 引用回覆 回覆 發表時間:2007-07-12 11:49:22 IP:211.22.xxx.xxx 未訂閱
從現有的資料庫程式執行檔中多欄複製及貼上截取,可能嗎?
與其如此,不如自己花個幾十分鐘寫個資料庫存取小程式來得實在.
ko
資深會員


發表:28
回覆:785
積分:444
註冊:2002-08-14

發送簡訊給我
#3 引用回覆 回覆 發表時間:2007-07-12 12:05:43 IP:61.30.xxx.xxx 訂閱
若是網頁的話,的確有...
抓執行中程式的輸入欄,只有點點點點

===================引 用 energybody 文 章===================
小弟想從一個執行中的程式的資料欄位抓取資料, 這個程式的資料欄位可以用 CTRL-C copy 到 Clipboard, 再用 CTRL-V paste 到 TXT 黨, 但是一次只能 copy 一個資料欄位, 也不能用 Multi-Select 來選取多個資料欄位, 請問有沒有軟體可以設定或可以用 Multi-Select 來一次從執行中的程式中抓取多個資料欄位.
------
======================
昏睡~
不昏睡~
不由昏睡~
energybody
一般會員


發表:44
回覆:32
積分:15
註冊:2007-04-12

發送簡訊給我
#4 引用回覆 回覆 發表時間:2007-07-12 15:36:23 IP:61.62.xxx.xxx 訂閱
這個程式是個 ShareWare, 提供的資料不能存檔, 所以只能在程式執行中抓取資料, 我知道有很多的軟體可以入侵到程式中抓取資料, 或者寫一個程式來抓, 請問各位先進有何程式或資料可以提供小弟來運用.
Kingron
中階會員


發表:1
回覆:51
積分:60
註冊:2005-09-14

發送簡訊給我
#5 引用回覆 回覆 發表時間:2007-07-24 17:36:06 IP:61.143.xxx.xxx 訂閱
SnagIt 8.0或以上的版本,可以抓取其他程序中的文本,例如TreeView或者ListView。
试一试看看能否抓取?
------
超级猛料:http://kingron.delphibbs.com
wameng
版主


發表:31
回覆:1336
積分:1188
註冊:2004-09-16

發送簡訊給我
#6 引用回覆 回覆 發表時間:2007-07-24 18:20:26 IP:61.222.xxx.xxx 訂閱
需要進一步分析該程式。例如:是否可以用 WM_GETTEXT 來取得。
或者判斷該物件是基於Windows 哪一種Class
這樣才能對症下藥。

這是對 CASIO KLP1000 標籤印表機程式丟資料的範例。
希望對你有幫助。

Var
DlgHwnd,EditHwnd,BtnHwnd: THandle;
begin
WinExec('C:\Program Files\CASIO\FA-B30\Bin\Klslink.exe',SW_SHOW);

DlgHwnd := FindWindow('#32770','Basic Label Printing Software FA-B30');
if DlgHwnd = 0 then
begin
MsgErr('找不到 FA-B30 程式!');
Exit;
end;

BtnHwnd := FindWindowEx(DlgHwnd,0,'Button','印刷(&P)');
if BtnHwnd = 0 then
begin
MsgErr('找不到 BUTTON 物件!');
Exit;
end;

EditHwnd := FindWindowEx(DlgHwnd,0,'Edit',Nil);
EditHwnd := FindWindowEx(DlgHwnd,EditHwnd,'Edit',Nil); {找到第二個 }
if EditHwnd = 0 then
begin
MsgErr('找不到 EDIT 物件!');
Exit;
end;

SendMessage(EditHwnd,WM_SETTEXT,0,LongInt(PCHAR('設定該物件的文字')));
SendMessage(BtnHwnd,WM_LBUTTONDOWN,1,1);
SendMessage(BtnHwnd,WM_LBUTTONUP,1,1);
end;
syntax
尊榮會員


發表:26
回覆:1139
積分:1258
註冊:2002-04-23

發送簡訊給我
#7 引用回覆 回覆 發表時間:2007-07-25 17:52:58 IP:61.64.xxx.xxx 訂閱
可以,但是不知道你的程度如何,所以先跟你說方法吧

1. 判斷該程式所使用的 FrameWork
2. 寫一之程式,使用 DLL 注入的方式,進入你程式的行程空間
3. 依據該 FrameWork 的方式,將資料自行列出,例如
如果是使用 delphi 的 VCL ,例如 TListView ,你就可以先使用 VCL 的方式取得該 TListView 的 instance 然後直接以使用元件的方式處理你要的資料

這樣,你做得來嗎?如果做不來,那我也沒辦法幫你做,因為這不是一時三刻,就可以完成的東西,你要自己努力,希望這值得你花時間,畢竟時間就是金錢啊


===================引 用 energybody 文 章===================
這個程式是個 ShareWare, 提供的資料不能存檔, 所以只能在程式執行中抓取資料, 我知道有很多的軟體可以入侵到程式中抓取資料, 或者寫一個程式來抓, 請問各位先進有何程式或資料可以提供小弟來運用.
energybody
一般會員


發表:44
回覆:32
積分:15
註冊:2007-04-12

發送簡訊給我
#8 引用回覆 回覆 發表時間:2007-08-08 19:11:09 IP:211.21.xxx.xxx 訂閱
小弟是 delphi 的初學者, 能否請 syntax 先生再說明詳細一點的作法, 我再試試看.
系統時間:2024-04-26 1:58:41
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!