private static extern IntPtr SetWindowsHookEx(int idHook, LowLevelCallback lpfn, IntPtr hMod, uint dwThreadId);
/// <summary> /// Attaches given delegate function to given id type /// </summary> /// <param name="idHook"></param> /// <param name="callback"></param> /// <returns></returns> private static IntPtr Attach(int idHook, LowLevelCallback callback) { using (Process currentProcess = Process.GetCurrentProcess()) using (ProcessModule currentModule = currentProcess.MainModule) { return SetWindowsHookEx(idHook, callback, GetModuleHandle(currentModule.ModuleName), 0); } }