Example #1
0
        public void AddFilter(Keys KeyCode, bool Ctrl, bool Alt, bool Shift)
        {
            KeyStroke newFilter = new KeyStroke();
            newFilter.KeyCode = KeyCode;
            newFilter.Shift = Shift;
            newFilter.Alt = Alt;
            newFilter.Ctrl = Ctrl;

            m_Filters.Add(newFilter);
        }
Example #2
0
        private bool CheckFilters(KeyStroke state)
        {
            if (m_Filters.Count == 0)
                return true;

            foreach (KeyStroke filter in m_Filters)
            {
                if (filter.IsMatch(state))
                    return true;
            }

            return false;
        }
Example #3
0
        private void KeyboardHook_HookInvoked(object sender, HookEventArgs e)
        {
            try
            {
            if (e.HookCode != 0)
                return;

            KeyStroke key = new KeyStroke();
            key.KeyCode = (Keys)e.wParam.ToInt32();
            key.Shift = GetKeyState(VirtualKeys.VK_SHIFT)  <= -127;
            key.Alt = GetKeyState(VirtualKeys.VK_MENU) <= -127;
            key.Ctrl = GetKeyState(VirtualKeys.VK_CONTROL) <= -127;

            KeyboardHookEventArgs keyboardEventArgs  = new KeyboardHookEventArgs(key);

            KeyboardMessageFlags kmf = new KeyboardMessageFlags(e.lParam.ToInt32());

            if (CheckFilters(key)  && !kmf.IsBeingReleased)
            {
                    OnKeyPressed (keyboardEventArgs);
            }
            }
            catch (Exception)
            {
            }
        }
Example #4
0
 /// <summary>
 /// Checks if the given keystroke matches the filter.
 /// Matching 
 /// </summary>
 /// <param name="keystroke"></param>
 /// <returns></returns>
 public bool IsMatch(KeyStroke keystroke)
 {
     return
         this.KeyCode == Keys.None ? true : keystroke.KeyCode == this.KeyCode &&
         keystroke.Ctrl == this.Ctrl &&
         keystroke.Alt == this.Alt &&
         keystroke.Shift == this.Shift;
 }
Example #5
0
 public KeyboardHookEventArgs(KeyStroke Key)
 {
     this.KeyStroke = Key;
 }