搜尋其他應用程式上面的元件?? |
答題得分者是:antonov_lin
|
ldd
一般會員 發表:12 回覆:62 積分:19 註冊:2004-07-06 發送簡訊給我 |
請問 在站上看到很多文章搜尋其他應用程式上面元件的ClassName .
我可以搜尋到我要的應用程式視窗 也可以找到我要的類別元件
例如TEdit
但是問題來了 程式上面有很多TEdit元件 但是我只要對其中一個
或不固定Edit元件來做不同的輸入 我要如何找到我想要的Edit元件????
另外一個問題是 有一個Toolbar 上面有很多ToolButton 但是那些都是沒有
Handle值 要如何找到我想要的Button ?? 我想做的只是想對另外一個程式做控制??? 目前都可以找到如何送訊息如何模擬鍵盤 但是我不知道如何找到我要的元件位置 也沒辦法對其控制?
請問各位先進 要如何找到我想要的元件對其家以控制?Thanks
|
markov
中階會員 發表:55 回覆:135 積分:53 註冊:2003-12-01 發送簡訊給我 |
|
ldd
一般會員 發表:12 回覆:62 積分:19 註冊:2004-07-06 發送簡訊給我 |
|
markov
中階會員 發表:55 回覆:135 積分:53 註冊:2003-12-01 發送簡訊給我 |
檢查Tag這個方法不用知道原始碼
下列程式碼是對所有元件去scan一次那個元件才是你要的元件
至於你說要取得handle,如果你只是要取得他的位置,不需要取得handle
更何況並不是所有元件都有handle
for(int i=0; i<Form1->ComponentCount; i) { if(Components[i]->ClassNameIs("TEdit")) { TEdit *component = (TEdit *)Components[i]; if(component->Tag==??) //do something if(component->Left==?? && component->Top==??) //do something } } |
ldd
一般會員 發表:12 回覆:62 積分:19 註冊:2004-07-06 發送簡訊給我 |
引言: 檢查Tag這個方法不用知道原始碼 下列程式碼是對所有元件去scan一次那個元件才是你要的元件 至於你說要取得handle,如果你只是要取得他的位置,不需要取得handle 更何況並不是所有元件都有handle抱歉 可能我不太會表達!!還是我想錯了!!! 要利用FindComponent必須是為該物件的Owner不是ㄇ??? 要能利用FindComponent的話 程式應該是自己寫的 利用FindComponet可以找到 Form上有哪些元件不是ㄇ??? 我必須強調的是 我要控制的是另外一個執行檔程式!!! 例如控制 筆記本 瀏覽器....... 所以要先得到哪些視窗的Handle值 然後可能取得最後作用元件得Handle值 可以送一些資訊到那個欄位!!等等.. 但是我的問題是 如果這個程式上面有許多的Edit元件 但是我所要控制的可能不是最後一個最用的Edit元件 我可能會針對某些特定的Edit元件做自動輸入的動作 但是我要如何去確定那些是我要的元件??因為在站上看到都只是對於 找到這個元件是不是屬於哪一個類別的元件 似乎沒有看到可以判斷說 這個元件的名稱是什麼 ex:也許程式上面有一個Edit元件 編譯時的名稱為Password_Edit..... 如果可以獲得這些資訊的話就可以找到我想要的元件Handle值也可以對 它做一定的操作!!! Thanks!!for(int i=0; i<Form1->ComponentCount; i) { if(Components[i]->ClassNameIs("TEdit")) { TEdit *component = (TEdit *)Components[i]; if(component->Tag==??) //do something if(component->Left==?? && component->Top==??) //do something } } |
markov
中階會員 發表:55 回覆:135 積分:53 註冊:2003-12-01 發送簡訊給我 |
|
ldd
一般會員 發表:12 回覆:62 積分:19 註冊:2004-07-06 發送簡訊給我 |
|
antonov_lin
一般會員 發表:5 回覆:11 積分:8 註冊:2005-08-23 發送簡訊給我 |
我剛好最近有實做一個從 ie 的 statusbar 抓字串的練習,
方法或許可以提供給你參考一下, 方法雖然笨了一點...
C Builder 有內附一個 winsight32, 這個工具可以看到現在所有活動中的
程式及程式所附屬的元件; 在 winsight32 執行後, 可以看到有一排菱形符號
和內有一個加號的菱形符號, 注意那些有加號的菱形符號, 再看到後面會有
程式的名稱, 找到你所想要觀察的程式後, 按一下菱形符號就可以會打開成
一個樹狀分佈, 一路往下找到你要的元件後, {}號中的字串就是該元件的
classname, 再利用 findwindow 及 findwindowex 等 api, 應該就可以
達到你所要的目的.
|
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |