public InputForm() { InitializeComponent(); TargetProcName = ""; keyInScope = false; WindowCheck = new Timer(); WindowCheck.Interval = 100; WindowCheck.Tick += WindowCheck_Tick; keyboardCallback = LowLevelKeyboardProc; mouseCallback = LowLevelMouseProc; }
public static void SetHook(LowLevelInputProc proc) { // f**k GC // https://stackoverflow.com/a/6193914/2646069 lowLevelInputProcDelegate = proc; foreach (var hook in new List <int> { WH_KEYBOARD_LL, WH_MOUSE_LL, }) { HookPtrs.Add(hook, SetWindowsHookEx(hook, lowLevelInputProcDelegate, Marshal.GetHINSTANCE(typeof(DeepDarkWin32Fantasy).Module), 0)); } }
private static extern IntPtr SetWindowsHookEx(int idHook, LowLevelInputProc lpfn, IntPtr hMod, uint dwThreadId);