Example #1
0
        private void Keyboard_KeyIntercepted(object sender, KeyInterceptedEventArgs e)
        {
            Console.WriteLine($"-> {e.KeyName} Code: {e.KeyCode}");
            var k = e.KeyCode;
            if (k == 162 || k == 13) { //control and return
                return;
            }
            if (k == 231) { //automation
                return;
            }
            if (k >= 48 && k <= 57) {
                if (KeyboardPInvoke.GetKeyState(VirtualKey.Control) != -127) { //pressed
                    return;
                }
                e.CancelThisKey();
                int id = k - 48;
                if (id == 0) {
                    _active = false;
                    Console.WriteLine($"NinjaDev Disabled");
                    return;
                }
                var snippet = _manager.GetSnippet(id);
                if (snippet == "") {
                    Console.WriteLine("No snippet with ID " + id);
                    return;
                }
                _currentDriver = new SnippetDriver(snippet);
                Console.WriteLine($"Snippet {id} active");
                _active = true;
                return;
            }

            if (_active) {
                if (_currentDriver.Available) {
                    e.CancelThisKey();
                    var letter = _currentDriver.Next();
                    if (letter == 10) {
                        return;
                    }
                    if (letter == 13) { //enter
                        _keyboard.KeyPress(VirtualKeyCode.RETURN);
                        return;
                    }
                    _keyboard.TextEntry(letter);
                    return;
                }
                else {
                    Console.WriteLine("Snippet is over");
                }
            }
        }
Example #2
0
 private IntPtr HookCallback(int nCode, IntPtr wParam, IntPtr lParam)
 {
     int vkCode = Marshal.ReadInt32(lParam);
     if (vkCode == 231) { //automation
         return CallNextHookEx(_hookID, nCode, wParam, lParam);
     }
     if (nCode >= 0 && wParam == (IntPtr)WM_KEYUP) {
         if (_lasCancelledtDown == Marshal.ReadInt32(lParam)) {
             return (IntPtr)1;
         }
     }
     if (nCode >= 0 && wParam == (IntPtr)WM_KEYDOWN) {
         vkCode = Marshal.ReadInt32(lParam);
         var args = new KeyInterceptedEventArgs(vkCode);
         Console.WriteLine("key-> " + vkCode);
         OnKeyIntercepted(args);
         if (args.KeyCancelled) {
             _lasCancelledtDown = vkCode;
             return (IntPtr)1;
         }
     }
     return CallNextHookEx(_hookID, nCode, wParam, lParam);
 }
Example #3
0
 protected virtual void OnKeyIntercepted(KeyInterceptedEventArgs e)
 {
     KeyIntercepted?.Invoke(this, e);
 }