Hook相关内容不讲解, 三个函数说明不讲解,直接上代码,简洁明了。
public Form1()
{
InitializeComponent();
IntPtr currentModule = GetModuleHandle(Process.GetCurrentProcess().MainModule.ModuleName);
//局部钩子
ResultC = SetWindowsHookEx((int)HookType.WH_KEYBOARD, HookCallbackC, currentModule, GetCurrentThreadId());
//全局钩子
ResultG = SetWindowsHookEx((int)HookType.WH_KEYBOARD_LL, HookCallbackG, currentModule, 0);
}
protected override void OnClosing(CancelEventArgs e)
{
base.OnClosing(e);
if (ResultC != 0)
UnhookWindowsHookEx(ResultC);
if (ResultG != 0)
UnhookWindowsHookEx(ResultG);
}
public static int InvokeNumC { get; set; }
public static int InvokeNumG { get; set; }
public int ResultC { get; set; }
public int ResultG { get; set;