1个回答
展开全部
安装钩子:
[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);
}
当钩子安装后,自动写如钩子链表,挂入系统,监视指定的事件,这里是键盘事件,当事件发生时先通过钩子
[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);
}
当钩子安装后,自动写如钩子链表,挂入系统,监视指定的事件,这里是键盘事件,当事件发生时先通过钩子
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询