線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1431
推到 Plurk!
推到 Facebook!

請問如何抓任意handle

尚未結案
blaket
一般會員


發表:4
回覆:8
積分:2
註冊:2004-04-15

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-05-02 15:28:45 IP:140.113.xxx.xxx 未訂閱
我現在在寫小鍵盤 想要將指定字元輸出到任意的可編輯區域 譬如 bbs word notebook 等等 但是要怎麼去抓取現在的滑鼠所指向的編輯區域的handle呢 不知道有沒有大大知道怎麼抓取
jcjroc
高階會員


發表:21
回覆:279
積分:115
註冊:2002-09-18

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-05-02 20:22:56 IP:61.219.xxx.xxx 未訂閱
HWND WindowFromPoint( POINT Point // structure with point );
blaket
一般會員


發表:4
回覆:8
積分:2
註冊:2004-04-15

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-05-03 21:16:48 IP:140.113.xxx.xxx 未訂閱
上面大大說的方法我試過了 先感謝J大大的方法 我試過了的確可以在特定情況下抓取到HANDLE 但是感覺起來還是有點缺陷 就是當我要編輯的視窗沒有在所指定的點上時 就不能傳送了 不知道有沒有辦法可以依照視窗的排列順序去抓取HANDLE
jcjroc
高階會員


發表:21
回覆:279
積分:115
註冊:2002-09-18

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-05-03 22:31:01 IP:61.219.xxx.xxx 未訂閱
BOOL EnumWindows( WNDENUMPROC lpEnumFunc, // pointer to callback function LPARAM lParam // application-defined value ); BOOL EnumChildWindows( HWND hWndParent, // handle to parent window WNDENUMPROC lpEnumFunc, // pointer to callback function LPARAM lParam // application-defined value );
blaket
一般會員


發表:4
回覆:8
積分:2
註冊:2004-04-15

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-05-06 21:38:51 IP:140.113.xxx.xxx 未訂閱
不好意思 我用過一些抓WINDOWS的HANDLE的方法後 發現 如果我抓的是IEFRAME的HADLE 我發現我只能在IE的視窗裡編輯 但是如果是要編輯IE裡的其他地方 譬如 google bar 網址輸入的地方 這樣就不能編輯了 所以我想請問一下 有沒有大大板主 有寫過微軟小鍵盤相關的軟體 可以提示我一些輸出編輯的方法
jcjroc
高階會員


發表:21
回覆:279
積分:115
註冊:2002-09-18

發送簡訊給我
#6 引用回覆 回覆 發表時間:2004-05-06 23:02:36 IP:61.219.xxx.xxx 未訂閱
這代表你沒有詳細去看那兩個API也代表你對Window API不熟 我能確定能達到你要的功能,所以在去看看那兩個API
jcjroc
高階會員


發表:21
回覆:279
積分:115
註冊:2002-09-18

發送簡訊給我
#7 引用回覆 回覆 發表時間:2004-05-06 23:05:37 IP:61.219.xxx.xxx 未訂閱
引言: 這代表你沒有詳細去看那兩個API也代表你對Window API不熟 我能確定能達到你要的功能,所以在去看看那兩個API 還有就是,你要分請楚ComboBox,EditBox,ListBox等所接收的訊息是怎樣
jcjroc
高階會員


發表:21
回覆:279
積分:115
註冊:2002-09-18

發送簡訊給我
#8 引用回覆 回覆 發表時間:2004-05-06 23:12:15 IP:61.219.xxx.xxx 未訂閱
這代表你沒有詳細去看那兩個API也代表你對Window API不熟 我能確定能達到你要的功能,所以在去看看那兩個API 還有就是,你要分請楚ComboBox,EditBox,ListBox等所接收的訊息是怎樣? 再來就是你要寫的是小鍵盤,這跟keybd_event比較有關吧,怎會弄到WindowHandle呢?
blaket
一般會員


發表:4
回覆:8
積分:2
註冊:2004-04-15

發送簡訊給我
#9 引用回覆 回覆 發表時間:2004-05-07 01:49:17 IP:211.76.xxx.xxx 未訂閱
喔 我是有看啦 但式有點看不懂這兩個API的用法 英文解釋有點看不懂 至於window handle 我是之前post時 有位大大回我這個做法 我試過是可以寫 但是有上述的問題 那我在去仔細試試上面的兩個api 多謝J大大
tqpzxy
一般會員


發表:13
回覆:22
積分:7
註冊:2003-11-13

發送簡訊給我
#10 引用回覆 回覆 發表時間:2004-05-09 21:04:46 IP:203.187.xxx.xxx 未訂閱
對不起!插一下花... 請問一下 jcjroc 大大,如何判斷鍵盤模式? 因為鍵盤有時是設成一般鍵盤,也就是左手從小指、無名紙、中指、食指,依序打字,則打出 asdf ;但若設成 Dvorak 鍵盤,則變成 aoeu 。 已試過 GetKeyboardLayout ,該函數的傳回值,根據說明檔的說法,是可以判斷鍵盤形式。但是問題來了,傳回值的 LOWORD 是 Language ID ,Language ID 說明檔裡有列表,可以查得到。 HIWORD 則是實際鍵盤的 device handle ,但是這個值卻不像 Language ID 一樣有表可查,值代表什麼意思無法得知。 先前試過 keybd_event 和 SendInput ,得到的結果也是無濟於事。因為不管鍵盤怎麼設,縱然設成 Dvorak ,輸出仍是 asdf ( Dvorak 的輸出應該是 aoeu )。也就是說 keybd_event 也好 SendInput 也罷,這兩者對鍵盤的設定,是麻木的。 如何判斷鍵盤的設定呢?請問一下大大!謝謝囉! ^^
jcjroc
高階會員


發表:21
回覆:279
積分:115
註冊:2002-09-18

發送簡訊給我
#11 引用回覆 回覆 發表時間:2004-05-09 21:31:22 IP:61.219.xxx.xxx 未訂閱
我也不知耶! 如果要達到如此目的,通常都直接去Registry設定Keybord mapping table 例如日文鍵盤<-->一般鍵盤 你可以上網查查
tqpzxy
一般會員


發表:13
回覆:22
積分:7
註冊:2003-11-13

發送簡訊給我
#12 引用回覆 回覆 發表時間:2004-05-13 15:57:29 IP:203.187.xxx.xxx 未訂閱
引言: 我也不知耶! 如果要達到如此目的,通常都直接去Registry設定Keybord mapping table 例如日文鍵盤<-->一般鍵盤 你可以上網查查
謝謝你提供的意見! 另外我發現 MapVirtualKey 可以把 scan code 轉成 virtual key code ,這樣就可以達到辨識鍵盤按鈕位置的目的了。例如 asdf 遇到 Dvorak 鍵盤會自動變成 aoeu 了。 提供出來,野人獻曝一下。(或許對想寫小鍵盤的人有幫助)
blaket
一般會員


發表:4
回覆:8
積分:2
註冊:2004-04-15

發送簡訊給我
#13 引用回覆 回覆 發表時間:2004-05-14 21:17:01 IP:140.113.xxx.xxx 未訂閱
我現在利用timer 可以抓到我要編輯的視窗了 我用keybd_event傳送字元 但是只有一些區域可以接收到 像奇摩首頁 搜尋區塊我可以收到 但是網址連結的區塊我就只能收到一個字元 GOOGLE 工具列完全收不到 有大大可以跟我說是什麼原因嗎
solitarygo
一般會員


發表:4
回覆:12
積分:3
註冊:2004-07-30

發送簡訊給我
#14 引用回覆 回覆 發表時間:2004-08-02 10:47:03 IP:140.127.xxx.xxx 未訂閱
我目前用 JAVA 寫小鍵盤,也碰到跟你一樣的問題。 也是只有在網址列那邊只會出現一個字, 經過我測試多次的原因,就是每次只要網址列一有輸入, 便會全被選取,也就是說你每次輸入完,就被全部選取, 等到輸入下一個字的時候,原先輸入的字就被取代掉了, 因此才每次只有一個字出現。 我用 JAVA 寫,就是每次點取到我的視窗,視窗的指標就會移到我那個視窗, 以致於不能在我想要編輯的區域輸入字(如:WORD、notebook、IE), 所以我現在來尋求 C ,希望能藉由 JNI 技術,取得之前的視窗的編輯區域, 一切剛起步而已,而我也完全不了解 WIN32 API。 從頭開始= ="
系統時間:2024-05-09 10:38:54
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!