原文 http://delwiki.info/?Tips%2F%A5%D5%A5%C3%A5%AF%A4%C8%A4%AB%A4%E4%A4%C3%A4%C6%A4%DF%A4%EB
フックとはユーザーの入力や飛び交うウィンドウメッセージに干渉し
その内容を変更したり、止めたりすることです。
Gen's 不定期ローテク講座 http://www2.biglobe.ne.jp/~sakai/usehook.htm
でまずフックについて勉強しましょう。
KeyBoardメッセージをフックするためのDLL雛形サンプル http://www2.biglobe.ne.jp/~sakai/bin/list2.txt
の続きを書いてみる。
TestKbdHook.DPR(略),TestKbdHookMain.pas(←リンク先にソース)
またKHDLL.dprにはえくすぽーとを書きます。
exports SetHook, RemoveHook, GetHookMsgString;
KHDLL.dpr、KHMain.pas、TestKbdHook.DPR,TestKbdHookMain.pas
をコンパイル。KHDLL.dllと同じディレクトリでTestKbdHook.exeを
起動するとフックが始まります。
何かキーを押してみてください。
Form1.Captionに数値が加算されていくハズ。
蛇足
{ ここのコメント部分をはずせばフックをインストールした時に Application側のウィンドウハンドルと、インストールしたフィ ルタ関数のハンドルを表示する。} with pHookInfo(p)^ do begin MessageBox(0 ,PChar( 'Host Wnd : '+ IntToStr( HostWnd)+#13#10+ 'hndHook : '+ IntToStr( hndHook)+#13#10) ,'KeyHookDLL', MB_OK or MB_ICONEXCLAMATION or MB_SETFOREGROUND) ; end;
メッセージフックに関する参考リンク
Halbow資料館 http://homepage2.nifty.com/Mr_XRAY/Halbow 内の
フック関数のインスタンス化 http://homepage2.nifty.com/Mr_XRAY/Halbow/Notes/N006.html
加筆修正きぼんぬ
|