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

請問怎麼獲取某個程式的handle?和WM_MouseMovede的使用

答題得分者是:malanlk
hbh1
一般會員


發表:4
回覆:4
積分:1
註冊:2005-08-07

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-08-30 02:13:44 IP:220.198.xxx.xxx 未訂閱
1.請問怎麼獲取某個程式的句柄?那個程式沒有caption,只有一個懸浮視窗(裏面包含許多按鈕),如果獲取某個按鈕或整個窗口的句柄. 2.使用SendMessage(Handle,WM_MouseMove,0,LOWORD(581) HIWORD(438));我想问:其中的滑鼠的座標值是指GetCursorpos取得的值,還是距離該Handle的上邊界和左邊界的值? 發表人 - hbh1 於 2005/08/30 02:25:29
malanlk
尊榮會員


發表:20
回覆:694
積分:577
註冊:2004-04-19

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-08-30 10:55:58 IP:203.69.xxx.xxx 未訂閱
用 SPY 去看該視窗的註冊類別, 然後用 FindWindow(PChar('查到的ClassName'), NULL); 如果找到 回應就會是 handle... SDK WM_MOUSEMOVE 的解說 xPos Value of the low-order word of lParam. Specifies the x-coordinate of the cursor. The coordinate is relative to the upper-left corner of the client area. yPos Value of the high-order word of lParam. Specifies the y-coordinate of the cursor. The coordinate is relative to the upper-left corner of the client area. 是距離該 Handle視窗 左上角的距離
hbh1
一般會員


發表:4
回覆:4
積分:1
註冊:2005-08-07

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-08-30 13:28:32 IP:220.198.xxx.xxx 未訂閱
引言: 用 SPY 去看該視窗的註冊類別, 然後用 FindWindow(PChar('查到的ClassName'), NULL); 如果找到 回應就會是 handle...
1.请问可以指定某个运行了的程序xxx.exe,然后列出他所有的handle吗? 2.我在form1上有2个按扭,第一个按扭的代码: PostMessage(form1.Handle,WM_LBUTTONDOWN,0,LOWORD(20) HIWORD(20)); PostMessage(form1.Handle,WM_LBUTTONUP,0,LOWORD(20) HIWORD(20)); 第2个按扭位于form1的(20,20),代码: showmessage('ddffff'); 为什么我按下按扭1,不能启动按扭2的事件?要怎么做才可以? 發表人 - hbh1 於 2005/08/30 14:10:51
malanlk
尊榮會員


發表:20
回覆:694
積分:577
註冊:2004-04-19

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-08-30 15:04:59 IP:203.69.xxx.xxx 未訂閱
1. ㄧ定可以, 不然 SPY 是怎麼做的, 可是難度頗高.... 2. 先回答 PostMessage(button2.Handle,WM_LBUTTONDOWN,0,LOWORD(5) HIWORD(5)); PostMessage(button2.Handle,WM_LBUTTONUP,0,LOWORD(5) HIWORD(5)); 發表人 - malanlk 於 2005/08/30 15:08:26
hbh1
一般會員


發表:4
回覆:4
積分:1
註冊:2005-08-07

發送簡訊給我
#5 引用回覆 回覆 發表時間:2005-08-30 15:45:25 IP:220.198.xxx.xxx 未訂閱
引言: 1. ㄧ定可以, 不然 SPY 是怎麼做的, 可是難度頗高.... 2. 先回答 PostMessage(button2.Handle,WM_LBUTTONDOWN,0,LOWORD(5) HIWORD(5)); PostMessage(button2.Handle,WM_LBUTTONUP,0,LOWORD(5) HIWORD(5));
spy 我不用到,装完有错误信息,但我用其他工具可以查到类名和handle,我做的程序1用来控制程序2的,但每次程序2重新启动后,原来的handle就变了,请问怎么才能才自己的程序获取那个handle啊?我需要获取的按扭的类名是button,但程序2里面有许多个按扭类名都是button,用findwind查不到,有什么其他方法获取当中某个按纽的handle
malanlk
尊榮會員


發表:20
回覆:694
積分:577
註冊:2004-04-19

發送簡訊給我
#6 引用回覆 回覆 發表時間:2005-08-30 17:24:09 IP:203.69.xxx.xxx 未訂閱
假設兩程式 P1, P2 每次 P2 重新啟動 1. P1 用 FindWindow找到 P2 2. 可以用 FindWindowEx 找出 P2 子視窗(Button 也是視窗哦)的Handle. (也可以用 EnumChildWindows 找出所有子視窗) 如果P1, P2 都是自己寫的, 就可以用SendMessag傳送自訂訊息的方式取得你想控制按鈕的 Handle... 每次 P2 重新啟動 1. P1 用 FindWindow找到 P2 2. P1 用 SendMessage(P2.Handle, wm_TellMeButtonHandle, n, 0) 傳送你想取得 P2 上第n個 Button 的 Handle (SendMessage 傳回值是長整數可自行定義) 3. P2 接到 wm_TellMeButtonHandle 就將 第n個 Button 的 Handel 傳回去. 發表人 - malanlk 於 2005/08/30 17:33:50
hbh1
一般會員


發表:4
回覆:4
積分:1
註冊:2005-08-07

發送簡訊給我
#7 引用回覆 回覆 發表時間:2005-08-30 17:49:57 IP:220.198.xxx.xxx 未訂閱
引言: 假設兩程式 P1, P2 每次 P2 重新啟動 1. P1 用 FindWindow找到 P2 2. 可以用 FindWindowEx 找出 P2 子視窗(Button 也是視窗哦)的Handle. (也可以用 EnumChildWindows 找出所有子視窗) 如果P1, P2 都是自己寫的, 就可以用SendMessag傳送自訂訊息的方式取得你想控制按鈕的 Handle... 每次 P2 重新啟動 1. P1 用 FindWindow找到 P2 2. P1 用 SendMessage(P2.Handle, wm_TellMeButtonHandle, n, 0) 傳送你想取得 P2 上第n個 Button 的 Handle (SendMessage 傳回值是長整數可自行定義) 3. P2 接到 wm_TellMeButtonHandle 就將 第n個 Button 的 Handel 傳回去. 發表人 - malanlk 於 2005/08/30 17:33:50
ok~~~~~~~~thank you very much 能交个朋友吗?我还有些问题想请教,有用QQ或icq或msn吗?
malanlk
尊榮會員


發表:20
回覆:694
積分:577
註冊:2004-04-19

發送簡訊給我
#8 引用回覆 回覆 發表時間:2005-08-30 18:15:17 IP:203.69.xxx.xxx 未訂閱
傳簡訊給你了
系統時間:2024-05-06 4:10:52
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!