private IntPtr SetHook(NativeMethodDelegates.LowLevelKeyboardProc proc) { using (Process curProcess = Process.GetCurrentProcess()) using (ProcessModule curModule = curProcess.MainModule) { return(NativeMethods.SetWindowsHookEx(NativeMethods.WH_KEYBOARD_LL, proc, NativeMethods.GetModuleHandle(curModule.ModuleName), 0)); } }
public void StartListener(Action <string> levelUpPaymentTokenFound) { LevelUpPaymentTokenFound = levelUpPaymentTokenFound; _hookCallback = HookCallback; GC.KeepAlive(_hookCallback); _hookId = SetHook(_hookCallback); }
internal static extern IntPtr SetWindowsHookEx(int idHook, NativeMethodDelegates.LowLevelKeyboardProc lpfn, IntPtr hMod, uint dwThreadId);