110,546
社区成员
发帖
与我相关
我的任务
分享
public class Win32Hook
{
[DllImport("kernel32")]
public static extern int GetCurrentThreadId();
[DllImport( "user32",
CharSet=CharSet.Auto,CallingConvention=CallingConvention.StdCall)]
public static extern int SetWindowsHookEx(
HookType idHook,
HOOKPROC lpfn,
int hmod,
int dwThreadId);
public enum HookType
{
WH_KEYBOARD = 2
}
public delegate int HOOKPROC(int nCode, int wParam, int lParam);
public void SetHook()
{
// set the keyboard hook
SetWindowsHookEx(HookType.WH_KEYBOARD,
new HOOKPROC(this.MyKeyboardProc),
0,
GetCurrentThreadId());
}
public int MyKeyboardProc(int nCode, int wParam, int lParam)
{
CallNextHookEx(m_HookHandle, nCode, wParam, lParam); //先把消息发给系统默认处理队列
//在这里放置你的处理代码 return 0;
}
}
public int MyKeyboardProc(int nCode, int wParam, int lParam)
{
//在这里放置你的处理代码 return 0;
//CallNextHookEx(m_HookHandle, nCode, wParam, lParam); 就是这个函数怎么写..
//主要是m_HookHandle怎么获得
}