예제 #1
0
        KeyboardActivityArgs(KeyboardDevice keyboard, 
            IntPtr windowHandle, 
            KeyActivityType eventType,
            VirtualKeyCodes vKeyCode, 
            KeyMasks masks,
            int scanCode,
            int repeatCount,
            bool extended,
            char aChar)
        {
            fKeyboard = keyboard;
            fWindowHandle = windowHandle;
            fEventType = eventType;
            m_VirtualKeyCode = vKeyCode;
            m_KeyMasks = masks;
            fKeyChar = aChar;

            fRepeatCount = repeatCount;
            m_OEMScanCode = scanCode;
            fIsExtended = extended;
            
            //int previousKeyState = ((int)fKeyFlags & 0x40000000) >> 30;
            //fKeyWasPreviouslyDown = (1 == previousKeyState);

            // Not used at the moment
            //int context = ((int)fKeyFlags & 0x20000000) >> 29;
            //int transitionState = (int)(((int)fKeyFlags & 0x100000000) >> 31);

        }
예제 #2
0
        /// <summary>
        /// Send text to keyboard parsing text using .Net SendKeys.SendWait(...) method formatting.
        /// See: http://msdn2.microsoft.com/en-us/library/system.windows.forms.sendkeys.sendwait(VS.90).aspx
        /// </summary>
        /// <param name="text"></param>
        public void SendWait(string text)
        {
            ISendKeysParser parser = parserFactory.Create(text);

            foreach (ISendKeysParserGroup group in parser.Groups)
            {
                List <VirtualKeyCodes> modifierKeys = new List <VirtualKeyCodes>();

                string modifierCharacters = group.ModifierCharacters;
                foreach (char modifierCharacter in modifierCharacters)
                {
                    modifierKeys.Add(modifierKeyMap[modifierCharacter]);
                }

                PressKeysDown(modifierKeys.ToArray());

                VirtualKeyCodes escapedKey = group.EscapedKey;
                if (escapedKey != VirtualKeyCodes.None)
                {
                    PressAndRelease(escapedKey);
                }

                TypeUnformated(group.Body);

                modifierKeys.Reverse();
                ReleaseKeys(modifierKeys.ToArray());
            }
        }
예제 #3
0
        private void ShowSelectedPresetKeyCombination(string preset)
        {
            VirtualHotkey keycode;

            if (mPresetToHotkeyDictionaryForComboBox.TryGetValue(preset, out keycode))
            {
                // TODO: Do some magic to make it look okay
                StringBuilder pleasantHotkeyStringBuilder = new StringBuilder();

                if (VirtualKeyCodes.KeyCodeHasCtrl(keycode.ModifierKeyCode))
                {
                    pleasantHotkeyStringBuilder.Append("CTRL + ");
                }

                if (VirtualKeyCodes.KeyCodeHasAlt(keycode.ModifierKeyCode))
                {
                    pleasantHotkeyStringBuilder.Append("ALT + ");
                }

                if (VirtualKeyCodes.KeyCodeHasShift(keycode.ModifierKeyCode))
                {
                    pleasantHotkeyStringBuilder.Append("SHIFT + ");
                }

                pleasantHotkeyStringBuilder.Append(VirtualKeyCodes.GetFriendlyKeyCodeName(keycode.KeyCode));

                selectedPresetHotkeyTextbox.Text = pleasantHotkeyStringBuilder.ToString();
                newHotkeyTextBox.Text            = "";
            }
            else
            {
                selectedPresetHotkeyTextbox.Text = "";
                newHotkeyTextBox.Text            = "";
            }
        }
예제 #4
0
        public static void SendVirtualKeyUp(VirtualKeyCodes virtualKeyCode)
        {
            Thread.Sleep(100);

            NativeImport.SendInput(1, CreateKeyBoardInput((short)virtualKeyCode, 0, KEYEVENTF_KEYUP),
                                   Marshal.SizeOf(typeof(INPUT)));
        }
예제 #5
0
 private void SendKeyUp(VirtualKeyCodes keyCodes)
 {
     lock (keysHeldDown)
     {
         if (!keysHeldDown.ContainsKey(keyCodes))
         {
             throw new KeyboardSequenceException();
         }
         else
         {
             keysHeldDown[keyCodes] -= 1;
             if (keysHeldDown[keyCodes] == 0)
             {
                 try
                 {
                     keyboardInput.SendInput(window, keyCodes, SendInputFlags.KeyUp);
                 }
                 finally
                 {
                     keysHeldDown.Remove(keyCodes);
                 }
             }
         }
     }
 }
예제 #6
0
파일: Input.cs 프로젝트: jeason0813/Asmodat
        /// <summary>
        /// 150KB == 150 * 1024 = 76800
        /// </summary>
        /// <param name="MaxLength"></param>
        public InputTracer(int MaxLength, string path = null)
        {
            this.TraceClipboard = TraceClipboard;

            if (path == null)
            {
                path = Files.ExePath;
            }
            else
            {
                path = Files.GetFullPath(path);
            }

            this.Path = path;

            this.Load();

            this.MaxLength = MaxLength;
            Keyboard       = new KeyboardUsing();
            Timers         = new ThreadedTimers(10);
            KeyCodes       = new VirtualKeyCodes();
            CodeStates     = new int[Keyboard.CodesCounter];
            CodeDown       = new bool[Keyboard.CodesCounter];

            TimeStart = TickTime.Now;
        }
예제 #7
0
 /// <summary>
 ///     Create a KeyboardInput for a key press (up / down)
 /// </summary>
 /// <param name="virtualKeyCode">Value from VirtualKeyCodes</param>
 /// <param name="timestamp">optional Timestamp</param>
 /// <returns>KeyboardInput[]</returns>
 public static          KeyboardInput[] ForKeyPress(VirtualKeyCodes virtualKeyCode, int timestamp = 0)
 {
     return(new[]
     {
         ForKeyDown(virtualKeyCode, timestamp),
         ForKeyUp(virtualKeyCode, timestamp)
     });
 }
예제 #8
0
 /// <summary>
 ///     Create a KeyboardInput for a key down
 /// </summary>
 /// <param name="virtualKeyCode">Value from VirtualKeyCodes</param>
 /// <param name="timestamp">optional Timestamp</param>
 /// <returns>KeyboardInput</returns>
 public static KeyboardInput ForKeyDown(VirtualKeyCodes virtualKeyCode, int timestamp = 0)
 {
     return(new KeyboardInput
     {
         VirtualKeyCode = virtualKeyCode,
         Timestamp = timestamp
     });
 }
 private void PostKeyDown(IntPtr hWnd, VirtualKeyCodes key)
 {
     uint code = Win32.MapVirtualKeyEx((uint) key, 0, layout);
     uint message = (altPressed ? Win32.WM_SYSKEYDOWN : Win32.WM_KEYDOWN);
     uint lParam = 0x00000001 + (code << 16);
     if (altPressed) lParam |= 0x20000000;
     Win32.PostMessage(hWnd, message, (int) key, lParam);
 }
예제 #10
0
 /// <summary>
 ///     Create a KeyboardInput for a key up
 /// </summary>
 /// <param name="virtualKeyCode">Value from VirtualKeyCodes</param>
 /// <param name="timestamp">optional Timestamp</param>
 /// <returns>KeyboardInput</returns>
 public static KeyboardInput ForKeyUp(VirtualKeyCodes virtualKeyCode, int timestamp = 0)
 {
     return(new KeyboardInput
     {
         VirtualKeyCode = virtualKeyCode,
         KeyEventFlags = KeyEventFlags.KeyUp,
         Timestamp = timestamp
     });
 }
 public KeyboardHook(Window Window, VirtualKeyCodes Key, ModifierKeyCodes Modifiers)
 {
     this.Key       = Key;
     this.Modifiers = Modifiers;
     this.Window    = Window;
     host           = new WindowInteropHelper(Window);
     Identifier     = Window.GetHashCode();
     RegisterHotKey(host.Handle, Identifier, Modifiers, Key);
     ComponentDispatcher.ThreadPreprocessMessage += ProcessMessage;
 }
예제 #12
0
        private static void AssertKeywordIsParsedAs(string keyword, VirtualKeyCodes expectedKey)
        {
            ISendKeysParser parser = new SendKeysParser(keyword);

            Assert.AreEqual(1, parser.Groups.Length);

            Assert.AreEqual("", parser.Groups[0].ModifierCharacters);
            Assert.AreEqual(expectedKey, parser.Groups[0].EscapedKey);
            Assert.AreEqual("", parser.Groups[0].Body);
        }
예제 #13
0
 public KeyboardEvent(KeyboardDevice keyboard, KeyEventType eventType,
     VirtualKeyCodes keyData,
     int aKeyFlags, char aChar)
 {
     fKeyboard = keyboard;
     fEventType = eventType;
     fKeyData = keyData;
     fKeyFlags = aKeyFlags;
     fKeyChar = aChar;
 }
        private void PostKeyDown(IntPtr hWnd, VirtualKeyCodes key)
        {
            uint code    = Win32.MapVirtualKeyEx((uint)key, 0, layout);
            uint message = (altPressed ? Win32.WM_SYSKEYDOWN : Win32.WM_KEYDOWN);
            uint lParam  = 0x00000001 + (code << 16);

            if (altPressed)
            {
                lParam |= 0x20000000;
            }
            Win32.PostMessage(hWnd, message, (int)key, lParam);
        }
예제 #15
0
        public void SendInput(IntPtr window, VirtualKeyCodes keyCodes, SendInputFlags flags)
        {
            keyboardInput.dwFlags = (int)flags;
            keyboardInput.wVk     = (short)keyCodes;

            if (Win32.SendKeyboardInput(1, ref keyboardInput, Marshal.SizeOf(keyboardInput)) == 0)
            {
                throw new Win32Exception();
            }

            Application.DoEvents();
        }
        private void PostKeyUp(IntPtr hWnd, VirtualKeyCodes key)
        {
            uint code    = Win32.MapVirtualKeyEx((uint)key, 0, layout);
            uint message = (altPressed && key != VirtualKeyCodes.MENU ? Win32.WM_SYSKEYUP : Win32.WM_KEYUP);
            uint lParam  = 0xC0000001 + (code << 16);

            if (altPressed)
            {
                lParam |= 0xF0000000;
            }
            Win32.PostMessage(hWnd, message, (int)key, lParam);
        }
예제 #17
0
        public void SendInput(IntPtr window, VirtualKeyCodes keyCodes, SendInputFlags flags)
        {
            keyboardInput.dwFlags = (int)flags;
            keyboardInput.wVk = (short)keyCodes;

            if (Win32.SendKeyboardInput(1, ref keyboardInput, Marshal.SizeOf(keyboardInput)) == 0)
            {
                throw new Win32Exception();
            }

            Application.DoEvents();
        }
예제 #18
0
        private void StubFormatter(string rawText, string body, string modifiers, VirtualKeyCodes escapedKeys)
        {
            Stub.On(parserFactory).Method("Create").With(rawText).Will(Return.Value(parser));

            ISendKeysParserGroup group = NewMock <ISendKeysParserGroup>();

            Stub.On(group).GetProperty("ModifierCharacters").Will(Return.Value(modifiers));
            Stub.On(group).GetProperty("EscapedKey").Will(Return.Value(escapedKeys));
            Stub.On(group).GetProperty("Body").Will(Return.Value(body));

            Stub.On(parser).GetProperty("Groups").Will(Return.Value(new ISendKeysParserGroup[] { group }));
        }
예제 #19
0
        public static void SimulateKeyboardActivity(VirtualKeyCodes keyCode, KeyActivityType keyEvent)
        {
            KeyEvents++;

            INPUT structInput;
            structInput = new INPUT();
            structInput.type = User32.INPUT_KEYBOARD;
            structInput.ki.wScan = 0;
            structInput.ki.time = 0;
            structInput.ki.wVk = (short)keyCode;

            switch (keyEvent)
            {
                case KeyActivityType.SysKeyDown:
                case KeyActivityType.KeyDown:
                    structInput.ki.dwFlags = 0; // Keydown
                    if ((VirtualKeyCodes.LShiftKey == keyCode) || (VirtualKeyCodes.RShiftKey == keyCode))
                    {
                        //|| ((Keys)kd.keyCode).ToString().CompareTo("LMenu") == 0
                        structInput.ki.dwFlags |= User32.KEYEVENTF_EXTENDEDKEY;
                    }
                    break;

                case KeyActivityType.SysKeyUp:
                case KeyActivityType.KeyUp:
                    structInput.ki.dwFlags = User32.KEYEVENTF_KEYUP;
                    break;

                default:
                    //structInput.ki.keyEvent = (int)User32.KEYEVENTF_KEYUP;
                    break;
            }

            //InputHook.RealData = false;
            SimulateInput(structInput);

            // Something interesting about the sticky Shift Key:(
            if ((keyEvent == KeyActivityType.KeyUp) &&
                ((VirtualKeyCodes.LShiftKey == keyCode) || (VirtualKeyCodes.RShiftKey == keyCode)))
            {
                User32.keybd_event((byte)User32.VK_SHIFT, 0, (uint)(User32.KEYEVENTF_EXTENDEDKEY | User32.KEYEVENTF_KEYUP), 0);
                //structInput.ki.keyCode = (short)VK.RSHIFT; // Does not work in XP => try keybd_event
                //SimulateInput(structInput);
            }
            //InputHook.RealData = true;

            InputProcessKeyEx(keyCode, keyEvent);

        }
 public void SendInput(IntPtr window, VirtualKeyCodes keyCodes, SendInputFlags flags)
 {
     if (keyCodes == VirtualKeyCodes.MENU) altPressed = (flags == SendInputFlags.KeyDown);
     SetKeyState(keybstate, keyCodes, flags);
     if (flags == SendInputFlags.KeyDown)
     {
         PostKeyDown(window, keyCodes);
     }
     else
     {
         PostKeyUp(window, keyCodes);
     }
     Application.DoEvents();
     Thread.Sleep(1);
 }
예제 #21
0
        private void ParseGroupElements(string group)
        {
            Regex regex = new Regex(modifiersPattern, RegexOptions.IgnorePatternWhitespace);

            string          modifierCharacters = string.Empty;
            VirtualKeyCodes keyCode            = VirtualKeyCodes.None;
            string          bodyText           = string.Empty;

            MatchCollection match = regex.Matches(group);

            if (match.Count == 1)
            {
                Group modiferGroup = match[0].Groups["modifier"];
                if (modiferGroup.Success)
                {
                    modifierCharacters = modiferGroup.Value;
                }

                Group escapedKeyGroup = match[0].Groups["escapedKey"];
                if (escapedKeyGroup.Success)
                {
                    if (keyValueMap.TryGetValue(escapedKeyGroup.Value, out keyCode) == false)
                    {
                        keyCode = VirtualKeyCodes.None;
                        if (escapedKeyGroup.Value.Length == 3)
                        {
                            // escaped character
                            bodyText = escapedKeyGroup.Value.Substring(1, 1);
                        }
                    }
                }

                if (bodyText == string.Empty)
                {
                    Group bodyGroup = match[0].Groups["body"];
                    if (bodyGroup.Success)
                    {
                        bodyText = bodyGroup.Value;
                    }
                }
            }

            groupModifiers.Add(modifierCharacters);
            escapedKeyCodes.Add(keyCode);
            bodyTexts.Add(bodyText);

            groups.Add(new SendKeysParserGroup(modifierCharacters, bodyText, keyCode));
        }
예제 #22
0
        public InputLog()
        {
            this.TraceClipboard = TraceClipboard;
            this.Path           = Files.ExePath;

            this.Load();

            this.MaxLength = MaxLength;
            Keyboard       = new KeyboardUsing();
            Timers         = new ThreadedTimers(10);
            KeyCodes       = new VirtualKeyCodes();
            CodeStates     = new int[Keyboard.CodesCounter];
            CodeDown       = new bool[Keyboard.CodesCounter];

            TimeStart = TickTime.Now;
        }
 public void SendInput(IntPtr window, VirtualKeyCodes keyCodes, SendInputFlags flags)
 {
     if (keyCodes == VirtualKeyCodes.MENU)
     {
         altPressed = (flags == SendInputFlags.KeyDown);
     }
     SetKeyState(keybstate, keyCodes, flags);
     if (flags == SendInputFlags.KeyDown)
     {
         PostKeyDown(window, keyCodes);
     }
     else
     {
         PostKeyUp(window, keyCodes);
     }
     Application.DoEvents();
     Thread.Sleep(1);
 }
예제 #24
0
        private void SendKeyDown(VirtualKeyCodes keyCodes)
        {
            lock (keysHeldDown)
            {
                if (keysHeldDown.ContainsKey(keyCodes))
                {
                    keysHeldDown[keyCodes] += 1;
                }
                else
                {
                    keysHeldDown.Add(keyCodes, 1);

                    try
                    {
                        keyboardInput.SendInput(window, keyCodes, SendInputFlags.KeyDown);
                    }
                    catch (Exception)
                    {
                        keysHeldDown.Remove(keyCodes);
                        throw;
                    }
                }
            }
        }
예제 #25
0
        /// <summary>
        /// Send text to keyboard parsing text using .Net SendKeys.SendWait(...) method formatting.
        /// See: http://msdn2.microsoft.com/en-us/library/system.windows.forms.sendkeys.sendwait(VS.90).aspx
        /// </summary>
        /// <param name="text"></param>
        public void SendWait(string text)
        {
            ISendKeysParser parser = parserFactory.Create(text);

            foreach (ISendKeysParserGroup group in parser.Groups)
            {
                string modifierCharacters = group.ModifierCharacters;
                //TODO examine other uses of modifierKeys, can I use .ToArray instead and avoid the copies?
                var modifierKeys = modifierCharacters.Select(modChar => modifierKeyMap[modChar]).ToList();

                PressKeysDown(modifierKeys.ToArray());

                VirtualKeyCodes escapedKey = group.EscapedKey;
                if (escapedKey != VirtualKeyCodes.None)
                {
                    PressAndRelease(escapedKey);
                }

                TypeUnformated(group.Body);

                modifierKeys.Reverse();
                ReleaseKeys(modifierKeys.ToArray());
            }
        }
 private static void SetKeyState(byte[] keybstate, VirtualKeyCodes key, SendInputFlags flag)
 {
     keybstate[(int) key] = (byte) (flag == SendInputFlags.KeyDown ? 0x80 : 0x00);
     Win32.SetKeyboardState(keybstate);
 }
예제 #27
0
 public extern static void keybd_event(VirtualKeyCodes vKey, byte scan, int flags, UIntPtr extraInfo);
예제 #28
0
 public static void SendVirtualKey(VirtualKeyCodes virtualKeyCode)
 {
     SendVirtualKeyDown(virtualKeyCode);
     SendVirtualKeyUp(virtualKeyCode);
 }
예제 #29
0
        private static void AssertKeywordIsParsedAs(string keyword, VirtualKeyCodes expectedKey)
        {
            ISendKeysParser parser = new SendKeysParser(keyword);

            Assert.Equal(1, parser.Groups.Length);

            Assert.Equal("", parser.Groups[0].ModifierCharacters);
            Assert.Equal(expectedKey, parser.Groups[0].EscapedKey);
            Assert.Equal("", parser.Groups[0].Body);
        }
예제 #30
0
 public static bool GetKeyState(VirtualKeyCodes vkey)
 {
     short ret = GetAsyncKeyState(vkey);
     return ret != 0 ? true : false;
 }
        public static void PressKey(VirtualKeyCodes keyCode)
        {
            const int KEYEVENTF_EXTENDEDKEY = 0x1;
            const int KEYEVENTF_KEYUP = 0x2;
            const int KEYEVENTF_KEYDOWN = 0x0;

            byte KeyCode = (byte)keyCode;

            Keybd_event(KeyCode, 0x45, KEYEVENTF_KEYDOWN | KEYEVENTF_EXTENDEDKEY, 0);
            Keybd_event(KeyCode, 0x45, KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP, 0);
        }
예제 #32
0
 public static extern void keybd_event(VirtualKeyCodes bVk, byte bScan, KeyboardEventFlags dwFlags, UIntPtr dwExtraInfo);
예제 #33
0
        private void SendKeyDown(VirtualKeyCodes keyCodes)
        {
            lock (keysHeldDown)
            {
                if (keysHeldDown.ContainsKey(keyCodes))
                {
                    keysHeldDown[keyCodes] += 1;
                }
                else
                {
                    keysHeldDown.Add(keyCodes, 1);

                    try
                    {
                        keyboardInput.SendInput(window, keyCodes, SendInputFlags.KeyDown);
                    }
                    catch (Exception)
                    {
                        keysHeldDown.Remove(keyCodes);
                        throw;
                    }
                }
            }
        }
 private static void SetKeyState(byte[] keybstate, VirtualKeyCodes key, SendInputFlags flag)
 {
     keybstate[(int)key] = (byte)(flag == SendInputFlags.KeyDown ? 0x80 : 0x00);
     Win32.SetKeyboardState(keybstate);
 }
예제 #35
0
 public KeyboardEventArgs(KeyboardMessages keyboardMessage, VirtualKeyCodes virtualKeyCode)
 {
     this.KeyboardMessage = keyboardMessage;
     this.VirtualKeyCode  = virtualKeyCode;
 }
예제 #36
0
        private void StubFormatter(string rawText, string body, string modifiers, VirtualKeyCodes escapedKeys)
        {
            Stub.On(parserFactory).Method("Create").With(rawText).Will(Return.Value(parser));

            ISendKeysParserGroup group = NewMock<ISendKeysParserGroup>();
            Stub.On(group).GetProperty("ModifierCharacters").Will(Return.Value(modifiers));
            Stub.On(group).GetProperty("EscapedKey").Will(Return.Value(escapedKeys));
            Stub.On(group).GetProperty("Body").Will(Return.Value(body));

            Stub.On(parser).GetProperty("Groups").Will(Return.Value(new ISendKeysParserGroup[] { group }));
        }
예제 #37
0
 public static extern uint MapVirtualKey(VirtualKeyCodes uCode, MapVirtualKeyMapTypes uMapType);
예제 #38
0
 private void SendKeyUp(VirtualKeyCodes keyCodes)
 {
     lock (keysHeldDown)
     {
         if (!keysHeldDown.ContainsKey(keyCodes))
         {
             throw new KeyboardSequenceException();
         }
         else
         {
             keysHeldDown[keyCodes] -= 1;
             if (keysHeldDown[keyCodes] == 0)
             {
                 try
                 {
                     keyboardInput.SendInput(window, keyCodes, SendInputFlags.KeyUp);
                 }
                 finally
                 {
                     keysHeldDown.Remove(keyCodes);
                 }
             }
         }
     }
 }
 private void PostKeyUp(IntPtr hWnd, VirtualKeyCodes key)
 {
     uint code = Win32.MapVirtualKeyEx((uint) key, 0, layout);
     uint message = (altPressed && key != VirtualKeyCodes.MENU ? Win32.WM_SYSKEYUP : Win32.WM_KEYUP);
     uint lParam = 0xC0000001 + (code << 16);
     if (altPressed) lParam |= 0xF0000000;
     Win32.PostMessage(hWnd, message, (int) key, lParam);
 }
예제 #40
0
 public KeyEventArgs(VirtualKeyCodes keyData, int aKeyFlags)
 {
     fKeyData = keyData;
     fKeyFlags = aKeyFlags;
 }
예제 #41
0
        private static void InputProcessKeyEx(VirtualKeyCodes vkCode, KeyActivityType eventType)
        {
            if (eventType == KeyActivityType.KeyUp)
            {
                switch (vkCode)
                {
                    case VirtualKeyCodes.LWin:
                    case VirtualKeyCodes.RWin:
                        WinDown = false;
                        break;

                    case VirtualKeyCodes.LControlKey:
                    case VirtualKeyCodes.RControlKey:
                        CtrlDown = false;
                        break;

                    case VirtualKeyCodes.LMenu:
                    case VirtualKeyCodes.RMenu:
                        AltDown = false;
                        break;

                    default:
                        break;
                }
            }
            else
            {
                switch (vkCode)
                {
                    case VirtualKeyCodes.LWin:
                    case VirtualKeyCodes.RWin:
                        WinDown = true;
                        break;

                    case VirtualKeyCodes.LControlKey:
                    case VirtualKeyCodes.RControlKey:
                        CtrlDown = true;
                        break;

                    case VirtualKeyCodes.LMenu:
                    case VirtualKeyCodes.RMenu:
                        AltDown = true;
                        break;

                    case VirtualKeyCodes.Delete:
                        if (CtrlDown && AltDown)
                        {
                            ReleaseAllKeys();
                        }
                        break;

                    case VirtualKeyCodes.L:
                        if (WinDown)
                        {
                            ReleaseAllKeys();
                            User32.LockWorkStation();
                        }
                        break;

                    default:
                        break;
                }
            }
        }
예제 #42
0
 public KeyboardActivityArgs(KeyActivityType eventType, VirtualKeyCodes vKeyCode)
     :this(null, IntPtr.Zero, eventType, vKeyCode, 0, 0, 0, false, '\0')
 {
 }
예제 #43
0
 public SendKeysParserGroup(string modifierCharacters, string body, VirtualKeyCodes escapedKey)
 {
     this.modifierCharacters = modifierCharacters;
     this.body       = body;
     this.escapedKey = escapedKey;
 }
예제 #44
0
 private void ExpectKeyDownAndRelease(VirtualKeyCodes keyCode)
 {
     Expect.Once.On(keyboardInput).Method("SendInput").With(window, keyCode, SendInputFlags.KeyDown);
     Expect.Once.On(keyboardInput).Method("SendInput").With(window, keyCode, SendInputFlags.KeyUp);
 }
예제 #45
0
 static extern short GetAsyncKeyState(VirtualKeyCodes vkey);
예제 #46
0
 public static extern bool RegisterHotKey(IntPtr hWnd, int id, ModifierKeyCodes fdModifiers, VirtualKeyCodes vk);
 public SendKeysParserGroup(string modifierCharacters, string body, VirtualKeyCodes escapedKey)
 {
     this.modifierCharacters = modifierCharacters;
     this.body = body;
     this.escapedKey = escapedKey;
 }
예제 #48
0
 public static extern short GetKeyState(VirtualKeyCodes virtualKey);
예제 #49
0
 private void ExpectKeyUp(VirtualKeyCodes keyCode)
 {
     Expect.Once.On(keyboardInput).Method("SendInput").With(window, keyCode, SendInputFlags.KeyUp);
 }
예제 #50
0
 /// <summary>
 /// Constructor
 /// </summary>
 /// <param name="lowByte">The low byte value</param>
 /// <param name="highByte">The high byte values</param>
 public HotKeyFlags(VirtualKeyCodes lowByte, ModifierKeys highByte)
 {
     LowByte  = lowByte;
     HighByte = highByte;
 }