Example #1
0
        private static IntPtr HookCallback(
            int nCode, IntPtr wParam, IntPtr lParam)
        {
            int vkCode = Marshal.ReadInt32(lParam);

            if ((Keys)vkCode == Keys.ControlKey || (Keys)vkCode == Keys.LControlKey || (Keys)vkCode == Keys.RControlKey)
            {
                _CtrlPressed = wParam == (IntPtr)WM_KEYDOWN;
            }
            bool oldValue = false;

            if (KeysUnderLook.ContainsKey((Keys)vkCode))
            {
                oldValue = KeysUnderLook[(Keys)vkCode];
                KeysUnderLook[(Keys)vkCode] = wParam == (IntPtr)WM_KEYDOWN;
            }
            EventHandler <ResoavEventArgs> handler = ResoavHookKey;

            if (handler != null && _CtrlPressed &&
                !((Keys)vkCode == Keys.ControlKey || (Keys)vkCode == Keys.LControlKey || (Keys)vkCode == Keys.RControlKey) &&
                KeysUnderLook.ContainsKey((Keys)vkCode) &&
                oldValue == false &&
                KeysUnderLook[(Keys)vkCode] == true)
            {
                Console.WriteLine(String.Format("{0} - {1} - {2}", (Keys)vkCode, wParam == (IntPtr)WM_KEYDOWN ? "Down" : "Up", lParam));
                var arg = new ResoavEventArgs((Keys)vkCode);
                handler(null, arg);
            }

            return(CallNextHookEx(_hookID, nCode, wParam, lParam));
        }
Example #2
0
 void InterceptKeys_ResoavHookKey(object sender, ResoavEventArgs e)
 {
     //Keys.D1 = 49
     //throw new NotImplementedException();
     Console.WriteLine("Activate timer number: " + e.Key);
     if (spTimersPanel.Children.Count > (int)e.Key - 49)
     {
         var ch = (TimerControl)spTimersPanel.Children[(int)e.Key - 49];
         ch.DoAction();
     }
 }