Ejemplo n.º 1
0
        private int KeyboardHookProc(int nCode, Int32 wParam, IntPtr lParam)
        {
            //如果该消息被丢弃(nCode<0)或者没有事件绑定处理程序则不会触发事件

            if ((nCode >= 0) && (wParam == CallNlHookEx.WM_KEYDOWN || wParam == CallNlHookEx.WM_SYSKEYDOWN))
            {
                CallNlHookEx.KeyboardHookStruct KeyDataFromHook = (CallNlHookEx.KeyboardHookStruct)Marshal.PtrToStructure(lParam, typeof(CallNlHookEx.KeyboardHookStruct));

                if (Form1.hashTable.Contains(KeyDataFromHook.vkCode))
                {
                    int panelEnableFlg = (int)Form1.hashTable[KeyDataFromHook.vkCode];
                    if (panelEnableFlg == 1)
                    {
                        Call_MT70_DLL.EnableTouchPanel(true);
                    }
                    if (panelEnableFlg == 2)
                    {
                        Call_MT70_DLL.EnableTouchPanel(false);
                    }
                }
            }

            return(CallNlHookEx.CallNextHookEx(hHook, nCode, wParam, lParam));
            //return 0;
        }
Ejemplo n.º 2
0
        public void SetHook()
        {
            KeyboardHookDelegate = new CallNlHookEx.HookProc(KeyboardHookProc);
            //Process cProcess = Process.GetCurrentProcess();

            //ProcessModule cModule = cProcess.MainModule;

            //var mh = CallNlHookEx.GetModuleHandle(cProcess.MainModule.ModuleName);
            var mh = CallNlHookEx.GetModuleHandle(null);

            hHook = CallNlHookEx.SetWindowsHookEx(CallNlHookEx.WH_KEYBOARD_LL, KeyboardHookDelegate, mh, 0);
            if (hHook == 0)
            {
                throw new SystemException("Failed acquiring of the hook.");
            }
        }
Ejemplo n.º 3
0
 public void UnHook()
 {
     CallNlHookEx.UnhookWindowsHookEx(hHook);
 }