发布网友 发布时间:2024-10-23 21:22
共1个回答
热心网友 时间:2024-11-13 19:28
钩子(Hook),是Windows消息处理机制的一个平台,应用程序可以在上面设置子程以监视指定窗口的某种消息,而且所监视的窗口可以是其他进程所创建的。当消息到达后,在目标窗口处理函数之前处理它。钩子机制允许应用程序截获处理window消息或特定事件。钩子实际上是一个处理消息的程序段,通过系统调用,把它挂入系统。每当特定的消息发出,在没有到达目的窗口前,钩子程序就先捕获该消息,亦即钩子函数先得到控制权。这时钩子函数即可以加工处理(改变)该消息,也可以不作处理而继续传递该消息,还可以强制结束消息的传递。给你个C#全局钩子参考代码:blog.csdn.net/speedupnow/article/details/6193882
安装钩子: [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); }当钩子安装后,自动写如钩子链表,挂入系统,监视指定的事件,这里是键盘事件,当事件发生时先通过钩子
热心网友 时间:2024-11-13 19:33
钩子(Hook),是Windows消息处理机制的一个平台,应用程序可以在上面设置子程以监视指定窗口的某种消息,而且所监视的窗口可以是其他进程所创建的。当消息到达后,在目标窗口处理函数之前处理它。钩子机制允许应用程序截获处理window消息或特定事件。钩子实际上是一个处理消息的程序段,通过系统调用,把它挂入系统。每当特定的消息发出,在没有到达目的窗口前,钩子程序就先捕获该消息,亦即钩子函数先得到控制权。这时钩子函数即可以加工处理(改变)该消息,也可以不作处理而继续传递该消息,还可以强制结束消息的传递。给你个C#全局钩子参考代码:blog.csdn.net/speedupnow/article/details/6193882
安装钩子: [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); }当钩子安装后,自动写如钩子链表,挂入系统,监视指定的事件,这里是键盘事件,当事件发生时先通过钩子