Пример #1
0
        /// <summary>
        /// Calls the Win32 SendInput method with a stream of KeyDown and KeyUp messages in order to simulate uninterrupted text entry via the keyboard.
        /// </summary>
        /// <param name="text">The text to be simulated.</param>
        public IKeyboardSimulator Type(string text, bool takeCareOfCapsLock = false)
        {
            if (text.Length > UInt32.MaxValue / 2)
            {
                throw new ArgumentException(string.Format("The text parameter is too long. It must be less than {0} characters.", UInt32.MaxValue / 2), "text");
            }


            var inputBuilder = new InputBuilder();

            if (takeCareOfCapsLock)
            {
                using (var capsLockCare = new ToggleKeyCarer(VirtualKeyCode.CAPITAL, inputBuilder))
                {
                    inputBuilder = inputBuilder.AddCharacters(text);
                }
            }
            else
            {
                inputBuilder = inputBuilder.AddCharacters(text);
            }

            SendSimulatedInput(inputBuilder.ToArray());
            return(this);
        }
Пример #2
0
        /// <summary>
        /// Simulates a key press for each of the specified key codes in the order they are specified.
        /// </summary>
        /// <param name="keyCodes"></param>
        public IKeyboardSimulator KeyPress(params VirtualKeyCode[] keyCodes)
        {
            var builder = new InputBuilder();

            KeysPress(builder, keyCodes);
            SendSimulatedInput(builder.ToArray());
            return(this);
        }
Пример #3
0
        /// <summary>
        /// Simulates a modified keystroke where there are multiple modifiers and multiple keys like CTRL-ALT-K-C where CTRL and ALT are the modifierKeys and K and C are the keys.
        /// The flow is Modifiers KeyDown in order, Keys Press in order, Modifiers KeyUp in reverse order.
        /// </summary>
        /// <param name="modifierKeyCodes">The list of modifier keys</param>
        /// <param name="keyCodes">The list of keys to simulate</param>
        public IKeyboardSimulator ModifiedKeyStroke(IEnumerable <VirtualKeyCode> modifierKeyCodes, IEnumerable <VirtualKeyCode> keyCodes)
        {
            var builder = new InputBuilder();

            ModifiersDown(builder, modifierKeyCodes);
            KeysPress(builder, keyCodes);
            ModifiersUp(builder, modifierKeyCodes);

            SendSimulatedInput(builder.ToArray());
            return(this);
        }
Пример #4
0
        public IKeyboardSimulator ModifiedKeyUp(IEnumerable <VirtualKeyCode> modifierKeyCodes, IEnumerable <VirtualKeyCode> keyCodes)
        {
            var builder = new InputBuilder();

            foreach (var key in keyCodes)
            {
                builder.AddKeyUp(key);
            }
            ModifiersUp(builder, modifierKeyCodes);
            SendSimulatedInput(builder.ToArray());
            return(this);
        }
Пример #5
0
 public KeyPressingActivation(VirtualKeyCode[] virtualKeys)
 {
     _virtualKeys = virtualKeys;
     ModifiersDown(_builder, _virtualKeys);
     _messageDispatcher.DispatchInput(_builder.ToArray());
 }