有关键盘钩子的问题,各位大哥进来下

sweet_ 2010-06-27 01:37:07
我想监控其它程序的键盘输入,调用winAPI函数了
主要是安装钩子函数
SetWindowsHookEx(HookType idHook, HOOKPROC lpfn, int hmod, int dwThreadId);
idHook是钩子的类型
lpfnj 是钩子函数地址
第三四个参数我有点晕,
我是这样想的(hmod 是你要监控的窗口句柄 dwThreadId是监控是线程 0为所有线程)


比如 我想监控计算器,当我按下小键盘1时,那么1会被记录下来
钩子我是这样安装的
SetWindowsHookEx(HookType.WH_KEYBOARD, new HOOKPROC(this.my_process), (int)FindWindow(null, "计算器"), 0);
当然在my_process里面是我记录的过程,
可是达不到效果呀,不知道 是那错了,监控不到
原因可能是没亦检测到“计算器”那个窗口吧,但是那错了呢?
希望说的详细点,这方面我还是个新手,谢谢
...全文
48 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
a21999 2010-07-02
  • 打赏
  • 举报
回复
你的功能,只有全局钩子才能做。

参考实例和代码:
http://hi.baidu.com/44498/blog/item/3f9ea4a9df83f2f11f17a2eb.html
molonvely 2010-06-27
  • 打赏
  • 举报
回复
你需要的是全局钩子,而不是进程内钩子
所以至少要有一个dll来盛放你的Hookproc
具体的区别和实现请参照MSDN

另外,hmod指的是module的handle,并不是窗体的的handle

17,741

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 .NET Framework
社区管理员
  • .NET Framework社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧