C#使用Windows全局钩子(Winform) SetWindowsHookEx

本文介绍了如何在C#中使用Windows全局钩子SetWindowsHookEx来捕获键盘事件。首先,需要引用WindowsBase.dll并导入相关动态链接库,然后定义外部函数、委托类型和存储键盘信息的结构体。接着,定义一个处理键盘事件的方法,并获取窗体句柄。按照步骤操作,可以直接应用到项目中。
摘要由CSDN通过智能技术生成
注1:未作特殊标注请不要修改方法名称,引入的方法为系统定义
注2:代码按步骤直接复制就可用

使用windows全局钩子需要用到的3个主要外部函数

  • SetWindowsHookEx()
  • CallNextHookEx()
  • UnWindowsHookEx()

通过[DllImport()]导入导入动态链接库并定义函数

using System.Runtime.InteropServices;//DllImport方法

//定义SetWindowsHookEx
[DllImport("user32")]
//参数列表:idHook-钩子类型,lpfn-钩子函数委托,hmod-窗口句柄,dwThreadId-监控的线程数
public static extern int SetWindowsHookEx(int idHook, HOOKPROC lpfn, IntPtr hmod, int dwThreadId);
//定义CallNextHookEx
[DllImport("user32")]
//参数列表:hhk-WindowsHookEx的返回值,nCode-
public static extern int CallNextHookEx(int hhk, int nCode, int wParam, IntPtr lParam);
//定义UnhookWindowsHookEx
[DllImport("user32")]
//参数列表:hhk-WindowsHookEx的返回值
public static extern 
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值