0

有谁知道系统范围的 API 与 Delphi 挂钩?

我下载了madCodeHook,但是它没有任何源,所以我不想使用它;我想自己编程。

在 Code Project 上找到了一篇文章,但它是用 C++ 编写的。请帮助我在 Delphi 2010 中编写它。

4

2 回答 2

1

@Phoenix,你可以试试uallCollection库,它是用 delphi 7 编写的(我已经在 delphi 2007 中测试过,它工作正常),并附带一组示例,可以从这里下载和完整的源代码。唯一的缺点是自 2006 年 7 月 7 日以来没有更新,但我个人甚至在 Windows 7 上测试过这个库,它工作正常。

于 2010-06-28T17:05:21.400 回答
0

您必须使用挂钩程序(全局:整个系统;或本地:单个程序或线程)。

基本上,您将调用以下程序:

  • SetWindowsHookEx 函数:安装一个钩子(监控系统事件)
  • 钩子函数:当我们“钩子”到的事件发生时,它是由窗口调用的过程。
  • UnhookWindowsHookEx 函数:移除你的钩子

这是一个本地挂钩监视键盘条目的简单示例:

//setting up the hook;
//kbHook is a variable of type HHook (unit Windows);
//kbr_Hook is the procedure that will be called once the event happens;
kbHook:=setwindowshookex(WH_KEYBOARD,@kbr_Hook,0,GetCurrentThreadID()); 

MSDN 文档:http: //msdn.microsoft.com/en-us/library/ms644990%28VS.85%29.aspx

祝你好运

于 2010-06-28T09:09:13.397 回答