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

使用hook鎖住鍵盤及滑鼠

 
dllee
站務副站長


發表:321
回覆:2519
積分:1711
註冊:2002-04-15

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-04-22 16:40:16 IP:61.231.xxx.xxx 未訂閱
對於 Hook 一直很有興趣,但一直沒機會玩... 看到 cubi 提供的 Delphi Source  http://delphi.ktop.com.tw/topic.php?TOPIC_ID=29172 我將它改成 BCB 版本,在改的過程中還發現一些好玩的現象: 可以正常 Disable Keyboard 的 Hook Process
LRESULT CALLBACK KeyHook(int iCode, WPARAM wParam, LPARAM lParam)
{
  if(iCode < 0)
    CallNextHookEx(hKeyHook, iCode, wParam, lParam);
  return 1;
}
無法正常 Disable Keyboard 的 Hook Process
LRESULT CALLBACK KeyHook(int iCode, WPARAM wParam, LPARAM lParam)
{
  Form1->Label1->Caption="Code=" IntToHex(iCode,8)
                         "\nwParam=" IntToHex(int(wParam),8)
                         "\nlParam=" IntToHex(int(lParam),8);
  if(iCode < 0)
    CallNextHookEx(hKeyHook, iCode, wParam, lParam);
  return 1;
}
發現其中的不同了嗎? 我很好奇 Hook 到的資料,所以把它用 Form1 的 Label1 秀出,但只要作了這樣的事,當 Form1 不再是前景,在別的應用程式中,可以正常的按鍵,再回到 Form1 就發現 Hook 已失效 滑鼠的狀況也是一樣... <>沒空更新的網頁... href="http://big5.to/吃軟也吃硬">http://big5.to/吃軟也吃硬 http://coolsite.to/ushells 介紹Shells,LiteStep,GeoShell....
------
http://www.ViewMove.com
附加檔案:29185_demoHookInBCB.zip
avex
初階會員


發表:19
回覆:49
積分:43
註冊:2003-03-28

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-07-19 12:16:03 IP:218.163.xxx.xxx 未訂閱
會失去 hook 效應是理所當然的, 你再把 MSDN 仔細看一下. 看看local hook 跟 global hook 是差別
dllee
站務副站長


發表:321
回覆:2519
積分:1711
註冊:2002-04-15

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-07-20 08:26:08 IP:203.204.xxx.xxx 未訂閱
多謝 avex 的指教。    以下是由 msdn 找到一些與 Hook 有關的文章:    http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/WinUI/WindowsUserInterface/Windowing/Hooks/AboutHooks.asp    http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/winui/windowsuserinterface/windowing/hooks/usinghooks.asp    http://msdn.microsoft.com/msdnmag/issues/02/11/CuttingEdge/    如果您有更好的參考連結,願意分享的話,歡迎提供。    沒空更新的網頁... http://dllee.ktop.com.tw C及指標教學,計算機概論,資訊管理導論... http://dllee.adsldns.org 介紹Shells,LiteStep,GeoShell....
------
http://www.ViewMove.com
8866
中階會員


發表:27
回覆:147
積分:69
註冊:2002-10-14

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-03-15 11:29:39 IP:61.222.xxx.xxx 未訂閱
dllee 你好 ! 感謝你的分享 .    我用 VC 把你的 BCB 程式重寫一遍 (程式碼一模一樣) , 在 2000 沒問題 , 可 是在 98 會失效 ! ( 而你的程式在 98, 200 都沒問題 ) .    而我把部分程式改寫成 DLL 呼叫時就都可以了 , 是不是 BCB 會自動作一些 處理呢 , 而 VC 不會 ??? 感謝你的回答 .       < >< >
dllee
站務副站長


發表:321
回覆:2519
積分:1711
註冊:2002-04-15

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-03-16 00:02:38 IP:211.76.xxx.xxx 未訂閱
引言: dllee 你好 ! 感謝你的分享 . 我用 VC 把你的 BCB 程式重寫一遍 (程式碼一模一樣) , 在 2000 沒問題 , 可 是在 98 會失效 ! ( 而你的程式在 98, 200 都沒問題 ) . 而我把部分程式改寫成 DLL 呼叫時就都可以了 , 是不是 BCB 會自動作一些 處理呢 , 而 VC 不會 ??? 感謝你的回答 . < >< > < face="Verdana, Arial, Helvetica"> 我只能說 I'm sorry 了... 基本上這個程式幾乎都在用 WinAPI 與 BCB/VC 應該都沒有太大的關係才對... 因為我對 VC 不了解... so... 如果用 DLL 可以解決,也許您可以試試 avex 所說的 global hook 沒空更新的網頁... http://dllee.ktop.com.tw C及指標教學,計算機概論,資訊管理導論... http://dllee.adsldns.org 介紹Shells,LiteStep,GeoShell....
------
http://www.ViewMove.com
系統時間:2024-04-25 14:03:27
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!