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

如何取得Edit Box的Handle模擬輸入字串...

尚未結案
顛覆份子
一般會員


發表:2
回覆:4
積分:1
註冊:2002-12-18

發送簡訊給我
#1 引用回覆 回覆 發表時間:2002-12-20 02:22:20 IP:61.225.xxx.xxx 未訂閱
現在已經可以控制到simulator Click Button 但是要在edit boxg上傳入字串 因為找不到handle,所以有問題,基本上是因為edit boxg沒有物件的名稱... ,如果是button還有yes、cancel啦等等的名稱可以搜到identifier of control ,但是edit boxg就沒有了。所以呢,有什麼方式可以取得他的handle... 在網路上有見到程式可以用DOCK的方式取得非本程式內物件的Handle,這樣的 方式要如何才能實現呢...
lcsboy
版主


發表:87
回覆:622
積分:394
註冊:2002-06-18

發送簡訊給我
#2 引用回覆 回覆 發表時間:2002-12-20 09:27:43 IP:211.23.xxx.xxx 未訂閱
是真的沒有名字! 你真的確定嗎?    就算沒有名字也有Calss Name <-------- 這個總不可能沒有了吧? 就算沒有名字, 你看到的Edit Box應該是在某個AP底下吧?    用SPY++之類的tool自己找一下就找到囉  找到之後! 你可以先用
顛覆份子
一般會員


發表:2
回覆:4
積分:1
註冊:2002-12-18

發送簡訊給我
#3 引用回覆 回覆 發表時間:2002-12-20 14:21:58 IP:61.225.xxx.xxx 未訂閱
雖然事實上可以用GetNextDlgTabItem,GetClassName函式以搜尋的方式找到視窗內的各種控制物件classname,在控制物件有重複的情況下如:有兩個Button(沒有標題以圖形表示)及兩個editbox很難判斷到底搜尋到的是其中的哪一個。因此想求取其他方式能取得handle完成控制的實現...
Cooky Kid
初階會員


發表:5
回覆:68
積分:44
註冊:2002-07-11

發送簡訊給我
#4 引用回覆 回覆 發表時間:2002-12-20 16:56:33 IP:210.58.xxx.xxx 未訂閱
引言: 雖然事實上可以用GetNextDlgTabItem,GetClassName函式以搜尋的方式找到視窗內的各種控制物件classname,在控制物件有重複的情況下如:有兩個Button(沒有標題以圖形表示)及兩個editbox很難判斷到底搜尋到的是其中的哪一個。因此想求取其他方式能取得handle完成控制的實現...
您可以使用 EnumWindows, EnumChildWindows 取得在桌面上現在執行中的視窗的子視窗handle, //與EnumWindows配合的CallBack函式,將指定視窗下的所有子視窗都歷遍一次 bool CALLBACK EnumProc(HWND, LPARAM); //與EnumChildWindows配合的CallBack函式,將指定視窗下的所有子視窗都歷遍一次 bool CALLBACK EnumChildProc(HWND, LPARAM); good luck!!!
invalid
一般會員


發表:2
回覆:5
積分:1
註冊:2002-09-14

發送簡訊給我
#5 引用回覆 回覆 發表時間:2002-12-20 21:23:54 IP:211.150.xxx.xxx 未訂閱
我做过一个监控数据库登录窗口是否出现的app。 我的做法是先用FindWindow找到窗体的句柄,然后BringWindowToTop该窗体到最前台。 然后用位置WindowFromPoint来获得Edit的句柄。 因为数据库窗口出现的位置是固定的。所以可以获得的edit的句柄。 如果不固定,可以用API好像是GetWindowLong或者GetWindowRect来获得它的左边位置,然后加上个edit控件的相对位移就可以用WindowFromPoint得到句柄了。 小弟首次发言。如果不当,还请谅解啊!
invalid
一般會員


發表:2
回覆:5
積分:1
註冊:2002-09-14

發送簡訊給我
#6 引用回覆 回覆 發表時間:2002-12-20 21:28:08 IP:211.150.xxx.xxx 未訂閱
我做过一个监控数据库登录窗口是否出现的app。 我的做法是先用FindWindow找到窗体的句柄,然后BringWindowToTop该窗体到最前台。 然后用位置WindowFromPoint来获得Edit的句柄。 因为数据库窗口出现的位置是固定的。所以可以获得的edit的句柄。 如果不固定,可以用API好像是GetWindowLong或者GetWindowRect来获得它的左边位置,然后加上个edit控件的相对位移就可以用WindowFromPoint得到句柄了。 小弟首次发言。如果不当,还请谅解啊! 刚刚选择了:我使用簡體字內碼( >
lcsboy
版主


發表:87
回覆:622
積分:394
註冊:2002-06-18

發送簡訊給我
#7 引用回覆 回覆 發表時間:2002-12-21 12:51:39 IP:211.23.xxx.xxx 未訂閱
引言: 雖然事實上可以用GetNextDlgTabItem,GetClassName函式以搜尋的方式找到視窗內的各種控制物件classname,在控制物件有重複的情況下如:有兩個Button(沒有標題以圖形表示)及兩個editbox很難判斷到底搜尋到的是其中的哪一個。因此想求取其他方式能取得handle完成控制的實現...
既然你都可以找到相關的Class位置, 這個問題你已經解了一半! 接下來的一半.....嗯... Edit Box在一個AP裡面的Class位置一定是固定的, 我的意思是說, 比如 你要找的Edit Box的Class是排在這個AP Handle下的第五個, 就算你執行3個 你去看第3個AP, Edit Box還是排在相對應第3個AP下的第5個! 絕對不可能是Random排列的<----- 如果是這樣子玩的話, OS怎麼管理呀? 所以我的建議是用你的方式, 先找一遍Edit Box在整個AP的Class排列順序 然後就可以寫出相對應的程式, 當然~~~ 這個方法只適用某一個AP....... 因為~~~~~~~~誰叫你要玩的Class是不具明顯Windows Name or Grpahic的呢
顛覆份子
一般會員


發表:2
回覆:4
積分:1
註冊:2002-12-18

發送簡訊給我
#8 引用回覆 回覆 發表時間:2002-12-21 14:02:30 IP:61.225.xxx.xxx 未訂閱
在取得物件的獨特ID是可以用GetDlgCtrlID可以取出,因此在後續的動作中 以使用者為主確認物件本身獨特ID的動作已經實現,並且已經可以在同樣ClassName不同的Handle的視窗中取得相同的物件控制權。    那如果要用滑鼠選取的方式取得,要用什麼樣的方法呢... 下圖示取得狀況: < src="http://netcity5.web.hinet.net/UserData/84133637/win.gif">
顛覆份子
一般會員


發表:2
回覆:4
積分:1
註冊:2002-12-18

發送簡訊給我
#9 引用回覆 回覆 發表時間:2002-12-21 14:38:37 IP:61.225.xxx.xxx 未訂閱
非常抱歉,不小心按到回應鈕,雖然能從上述的方式直接取得Handle控制, 但是要經過繁雜的程序(還不一定能抓到),因此如果我要用滑鼠直接取得該 物件的Handle又需要何種函式來完成呢... 這是比較困難的部分不曉得有沒有人知道...
lcsboy
版主


發表:87
回覆:622
積分:394
註冊:2002-06-18

發送簡訊給我
#10 引用回覆 回覆 發表時間:2002-12-22 11:07:43 IP:210.58.xxx.xxx 未訂閱
引言: 非常抱歉,不小心按到回應鈕,雖然能從上述的方式直接取得Handle控制, 但是要經過繁雜的程序(還不一定能抓到),因此如果我要用滑鼠直接取得該 物件的Handle又需要何種函式來完成呢... 這是比較困難的部分不曉得有沒有人知道...
是有API可以去問滑鼠所在位置的東東!!! 不過會不會離題太多了, 建議另開一個議題發問
anpino
版主


發表:31
回覆:477
積分:231
註冊:2003-01-02

發送簡訊給我
#11 引用回覆 回覆 發表時間:2004-05-06 16:30:47 IP:211.23.xxx.xxx 未訂閱
請記得給分結案。 ------------------------------- 數學系是內功很強(邏輯/分析) 資工系是招式很多(程式技巧) 就像令狐沖VS東方不敗:D -------------------------------
系統時間:2024-05-03 8:50:01
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!