Ejemplo n.º 1
0
        static void InitHook()
        {
            Proc = new LowLevelKeyboardProc(KbdHookProc);
            ProcessModule module = Process.GetCurrentProcess().MainModule;
            IntPtr        hMod   = Kernel32.GetModuleHandle(module.ModuleName);

            Hook = User32.SetWindowsHookEx(HookType.WH_KEYBOARD_LL, Proc, hMod, 0);
            KeyChar.Init();
        }
Ejemplo n.º 2
0
 // Keyboard hook procedure.
 static IntPtr KbdHookProc(int code, WM wParam, [In] KBDLLHOOKSTRUCT lParam)
 {
     if (code >= 0)
     {
         Keys k      = (Keys)lParam.vkCode;
         bool active = wParam == WM.KEYDOWN || wParam == WM.SYSKEYDOWN;
         Console.WriteLine(active ? k + "+ " : k + "- ");
         WriteCode(active ? k + "+ " : k + "- ");
         WriteText(KeyChar.Name(lParam.vkCode, active));
     }
     return(User32.CallNextHookEx(IntPtr.Zero, code, wParam, lParam));
 }