Esempio n. 1
0
 private static IntPtr SetHook(Win32API.LowLevelKeyboardProc proc)
 {
     using (Process curProcess = Process.GetCurrentProcess())
         using (ProcessModule curModule = curProcess.MainModule) {
             return(Win32API.SetWindowsHookEx(WH_KEYBOARD_LL, proc, Win32API.GetModuleHandle(curModule.ModuleName), 0));
         }
 }
Esempio n. 2
0
        public KeyboardGrabber(BlockingCollection <char> queue)
        {
            this.queue = queue;
            Win32API.GetKeyboardState(keys);

            // store callback pointer to long-living memory, so it wont be garbage collected
            callback = HookCallback;
            hook_id  = SetHook(callback);
        }