C#钩子如何使用
发布网友
发布时间:2022-09-05 07:17
我来回答
共1个回答
热心网友
时间:2024-12-14 13:58
安装钩子:
[DllImport("user32.dll",
CharSet
=
CharSet.Auto,
SetLastError
=
true)]
private
static
extern
IntPtr
SetWindowsHookEx(int
idHook,
LowLevelKeyboardProc
lpfn,
IntPtr
hMod,
uint
dwThreadId);调用API
具体参数可以百度,LowLevelKeyboardProc
lpfn:这个参数实际上是一个回调函数,如下
处理函数
private
static
IntPtr
HookCallback(int
nCode,
IntPtr
wParam,
IntPtr
lParam)
{
//键盘按下时
if
(nCode
>=
0
&&
wParam
==
(IntPtr)WM_KEYDOWN)
{
int
vkCode
=
Marshal.ReadInt32(lParam);
Keys
key
=
(Keys)vkCode;
MessageBox.Show(key.ToString());
}
return
CallNextHookEx(_hookID,
nCode,
wParam,
lParam);
}
当钩子安装后,自动写如钩子链表,挂入系统,监视指定的事件,这里是键盘事件,当事件发生时先通过钩子