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

請教HOOK外掛等等觀念問題~

尚未結案
dotdot
版主


發表:29
回覆:142
積分:64
註冊:2002-08-09

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-04-01 17:08:06 IP:211.22.xxx.xxx 未訂閱
拜訪了很多大大有關鍵盤滑鼠事鍵應用 想寫個簡單一點外掛來實驗 我隨便寫一個執行檔當作我的目標執行檔其handle = hTEST 當我捕捉到目標Handle時候 可對其傳入類似PostMessage(hTEST,WM_KEYDOWN,65,0)//傳入A這個字的Message 但是我要模擬Mouse的動作 類似mouse_event()的函數 但是問題就來了 無論我搭配ScreenToClient()或是ClientToScreen() 發現這兩個函式在BCB均無傳入Hendle的參數 而動作的座標不是以螢幕為基準不然就是以來源端為基準 唯一要點到目標端上的某個按鈕或是座標 只能用"手動"對焦來"按下"目標 一旦畫面不是Foucs在目標視窗上 他還是會點那個位置 無視於目標是誰的存在 ..因此才萌生此問題 是不是一定要用到HOOK的方式才能對目標視窗傳入滑鼠的MESSAGE呢?或者是還有其他變通方法呢?
jessechan
版主


發表:109
回覆:394
積分:254
註冊:2002-04-05

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-04-01 19:00:10 IP:61.228.xxx.xxx 未訂閱
我純粹提出做參考, 因為沒時間測試, 我想用 SendMessage 就可以了, 至於要找 window 的座標, 用 GetWindowPos 找到 window 的座標就可以很容易換算成其它座標了.    Jesse Chan
------
Jesse Chan
dotdot
版主


發表:29
回覆:142
積分:64
註冊:2002-08-09

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-04-01 19:21:20 IP:211.22.xxx.xxx 未訂閱
嗯~我會試試的如果有結果會將心得公佈的 對了我找不到GetWindowPos函式 而GetWindowPosition也不是 我在試GetWindowRect看看能不能弄出點線索> <"
builder78
初階會員


發表:36
回覆:100
積分:47
註冊:2003-02-03

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-04-01 19:25:30 IP:211.76.xxx.xxx 未訂閱
不是很清楚您的問題~~不過"API"的(不是BCB的唷)ScreenToClient()與ClientToScreen()兩個函數皆有 Handle 參數可傳入~~ 給你參考一下
dotdot
版主


發表:29
回覆:142
積分:64
註冊:2002-08-09

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-04-01 21:32:51 IP:61.70.xxx.xxx 未訂閱
回builder78 大大: 我知道API有.我有看MSDN有介紹該ScreenToClient()與ClientToScreen()兩個函數皆有 Handle參數..但是在BCB上不知道如何引用 BCB好像有他自己的ScreenToClient()與ClientToScreen()如果傳入handle Compile會錯誤.. 像這樣當
jessechan
版主


發表:109
回覆:394
積分:254
註冊:2002-04-05

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-04-01 22:19:21 IP:61.228.xxx.xxx 未訂閱
真是對不起, 我是憑記憶回答, 我也不知道為什麼會記得有一個叫 GetWindowPos 的 Win32 API, 就當成是笑話一則好了; 說到你的問題, 第一點, 你說的沒錯, TControl 的確有一個 ScreenToClient 的 method, 又因為 TForm 是從 TControl 中繼承而來的, 所以直接寫, compiler 會把它當成是那個函數, 要解決這個問題最好的方法是用 ::ScreenToClient 就可以正確的呼叫了, 第二個問題, 我不是很了解你要達到什麼效果, 試試 WindowFromPoint 這個函數.    Jesse Chan
------
Jesse Chan
dotdot
版主


發表:29
回覆:142
積分:64
註冊:2002-08-09

發送簡訊給我
#7 引用回覆 回覆 發表時間:2003-04-02 00:09:25 IP:61.70.xxx.xxx 未訂閱
呵呵.別在意..WIN_API兄弟那麼多長的都很像 我也常常搞不清楚  但是也很感謝您熱情提供資訊 至於我想要達到的效果 簡單的說就是外掛 只是我先自己CREATE兩個執行檔 一個當目標..一個當作外掛 至於能達到何種效果..因為我主要是偏向寫Firmware最近寫得有點煩 所以寫寫AP當作研究兼練功 如果能越完美當然是越好 如果不能就退而求其次 一步一步囉    我也剛好在試你說的這個函式  到時候我還是會將心得整理PO出來讓大家指教及參考感謝感謝
dotdot
版主


發表:29
回覆:142
積分:64
註冊:2002-08-09

發送簡訊給我
#8 引用回覆 回覆 發表時間:2003-04-02 13:03:42 IP:211.22.xxx.xxx 未訂閱
經過了一些測試 捨棄一些比較複雜的用法..歸納出一個比較單純而簡單的做法來達到之前想要的目的 我將心得範例po上去作品區 有興趣的朋友們可以看看 也感謝很多大大的提示^^    http://delphi.ktop.com.tw/topic.php?TOPIC_ID=27978
系統時間:2024-07-03 0:32:36
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!