PostMessage一問 |
答題得分者是:anyone
|
asiaking
一般會員 發表:2 回覆:6 積分:1 註冊:2006-12-05 發送簡訊給我 |
以下程式的功能要達到在筆記本內 (200,200) 處執行滑鼠右鍵
但是是乎無法動作 但是我有加上 HANDLE f_Wnd = ::FindWindowEx(hWnd,0,"Edit",0); 是可以的 但是請問有其他方法嗎???? 我不想使用 HANDLE f_Wnd = ::FindWindowEx(hWnd,0,"Edit",0); 這個函數 請各位大大幫我解答一下謝謝!! //========================================================= WORD wX=200; // X 座標 WORD wY=200; // Y 座標 LPARAM LParam = MAKELPARAM(wX, wY); HANDLE hWnd = ::FindWindow("Notepad",NULL); //筆記本ClassName for(int i = 1; i < 20 ; i ) { PostMessage(hWnd, WM_RBUTTONDOWN, 0, LParam); PostMessage(hWnd, WM_RBUTTONUP, 0, LParam); } 幫忙解惑一下!!謝謝 |
hobolin
初階會員 發表:0 回覆:25 積分:25 註冊:2005-07-03 發送簡訊給我 |
|
asiaking
一般會員 發表:2 回覆:6 積分:1 註冊:2006-12-05 發送簡訊給我 |
|
anyone
中階會員 發表:1 回覆:63 積分:52 註冊:2007-02-12 發送簡訊給我 |
不用FindWindow的話
可以用EnumWindows(@EnumProc,0) ================================= 另外 SetCursorPos(x, y); PostMessage(Handle,WM_MouseMove ,0,lParam); PostMessage(Handle,WM_RButtonDown,0,lParam); PostMessage(Handle,WM_RButtonUp ,0,lParam); 你試看看 ps.這是delphi寫法,不過應該差不多 |
asiaking
一般會員 發表:2 回覆:6 積分:1 註冊:2006-12-05 發送簡訊給我 |
|
anyone
中階會員 發表:1 回覆:63 積分:52 註冊:2007-02-12 發送簡訊給我 |
你若要A去觸發B的話,要先用EnumWindows去抓到B的Handle值後
再用EnumChildWindows去取得你要的Button之Handle值 再用PostMessage去觸發Button就可以了 EnumWindows和EnumChildWindows的用法你可以去google去搜尋 應該會搜尋到很多相關的,你再去試看看 學會自己上網去找尋資料或資訊也是挺重要的唷! ===================引 用 文 章=================== 感謝anyone 大大 指點 是這樣的我有一個程式 產生一個A 視窗 還有一個別人寫的 B視窗? 為畫曲線圖 在A視窗中有許多功能按鈕? 當User 按到當中一個按鈕時 則觸發 B視窗 的一個按鈕 而劃出曲線圖 但是又不要讓User 感覺上有畫面切換的感覺 因為按完鈕後還有其他事件要動作 不想要中斷 除了使用FindWindowEx 取的B視窗子元件外 是否還有其他用法???? 不知 EnumWindows(@EnumProc,0) 該API要如何使用 可否在次請教一下 |
asiaking
一般會員 發表:2 回覆:6 積分:1 註冊:2006-12-05 發送簡訊給我 |
anyone 大大 我有試過摟~~ 但是好像還是不行A
我使用軟體去查B視窗的元件時 並沒有發現Button的元件 於是我想說 是否可以採用 "以視窗為基準移到固定位置(因為Button的位置是固定不變的) 在執行滑鼠左右鍵功能" 不知道是否能這樣使用?? ===================引 用 文 章=================== 你若要A去觸發B的話,要先用EnumWindows去抓到B的Handle值後 再用EnumChildWindows去取得你要的Button之Handle值 再用PostMessage去觸發Button就可以了 EnumWindows和EnumChildWindows的用法你可以去google去搜尋 應該會搜尋到很多相關的,你再去試看看 學會自己上網去找尋資料或資訊也是挺重要的唷! |
anyone
中階會員 發表:1 回覆:63 積分:52 註冊:2007-02-12 發送簡訊給我 |
不知道你的B視窗是什麼?遊戲嗎?
你那個做法可以 先SetCursorPos設定滑鼠XY的位置 再用PostMessage去做按的動作 (還是得先知道它的Handle值) 用PostMessage是因為它是依Handle的擁有者而送的訊息 比較能確保你是送到那個視窗 ===================引 用 文 章=================== anyone 大大? 我有試過摟~~?但是好像還是不行A 我使用軟體去查B視窗的元件時 並沒有發現Button的元件? 於是我想說 是否可以採用 "以視窗為基準移到固定位置(因為Button的位置是固定不變的) 在執行滑鼠左右鍵功能"? 不知道是否能這樣使用?? |
anyone
中階會員 發表:1 回覆:63 積分:52 註冊:2007-02-12 發送簡訊給我 |
補充一點:
抓不到Button元件除非它是用畫的或其它的工具做出來 不然一般Button都可以抓到它的Handle值 遊戲比較有可能而已 ===================引 用 文 章=================== anyone 大大? 我有試過摟~~?但是好像還是不行A 我使用軟體去查B視窗的元件時 並沒有發現Button的元件? 於是我想說 是否可以採用 "以視窗為基準移到固定位置(因為Button的位置是固定不變的) 在執行滑鼠左右鍵功能"? 不知道是否能這樣使用?? |
asiaking
一般會員 發表:2 回覆:6 積分:1 註冊:2006-12-05 發送簡訊給我 |
B視窗不是遊戲@@! 是一套統計繪圖軟體 是介由A視窗輸入資料後再按下A視窗按鈕 在去觸發B視窗 按鈕讀取在A視窗所輸入的資料去做統計
但是剛按下的A視窗按鈕只是要先讓B視窗預先讀資料統計 還沒有要讓B視窗顯示出來 才想要這樣子觸發 ========================= 位啥我PostMessage 的是父視窗的Handle 沒有效果 但是我PostMessage 的是父視窗中的子視窗的Handle 是OK的 父視窗通常指的所看到的畫面不是嗎??? ======請問要怎嚜結案阿!!! 感謝一值回覆我的問題======= ===================引 用 文 章=================== 不知道你的B視窗是什麼?遊戲嗎? 你那個做法可以 先SetCursorPos設定滑鼠XY的位置 再用PostMessage去做按的動作 (還是得先知道它的Handle值) 用PostMessage是因為它是依Handle的擁有者而送的訊息 比較能確保你是送到那個視窗 |
anyone
中階會員 發表:1 回覆:63 積分:52 註冊:2007-02-12 發送簡訊給我 |
|
asiaking
一般會員 發表:2 回覆:6 積分:1 註冊:2006-12-05 發送簡訊給我 |
|
anyone
中階會員 發表:1 回覆:63 積分:52 註冊:2007-02-12 發送簡訊給我 |
http://delphi.ktop.com.tw/board.php?cid=32&fid=88&tid=22190
結案方式如上 ===================引 用 文 章=================== 恩.....找了很久?? 是乎還是沒有不靠子元件觸發的方法?? ?? 對了 還是不知道怎嚜結案A@@! |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |