Пример #1
0
        private static uint SimulateKeyEvent(Win32API.VirtualKey vkCode, Win32API.ScanCode scanCode, Win32API.KeyEventFlags flags, UIntPtr dwExtraInfo)
        {
#if (SIMULATE_KEYS_SENDINPUT)
            Win32API.INPUT[] inputs = new Win32API.INPUT[]
            {
                new Win32API.INPUT
                {
                    type = Win32API.INPUT_TYPE.INPUT_KEYBOARD,
                    U    = new Win32API.InputUnion
                    {
                        ki = new Win32API.KEYBDINPUT
                        {
                            wVk         = vkCode,
                            wScan       = scanCode,
                            dwFlags     = flags,
                            time        = 0,
                            dwExtraInfo = dwExtraInfo
                        }
                    }
                }
            };

            return(Win32API.SendInput((uint)inputs.Length, inputs, Win32API.INPUT.Size));
#else
            Win32API.keybd_event((uint)vkCode, (uint)scanCode, flags, dwExtraInfo);
            return(0);
#endif
        }
Пример #2
0
        public static uint SimulateKeyUp(Win32API.VirtualKey vkCode, Win32API.ScanCode scanCode, bool extended)
        {
            Win32API.KeyEventFlags flags = Win32API.KeyEventFlags.KEYUP;
            if (extended)
            {
                flags |= Win32API.KeyEventFlags.EXTENDEDKEY;
            }

            return(SimulateKeyEvent(vkCode, scanCode, Win32API.KeyEventFlags.KEYUP, UIntPtr.Zero));
        }
Пример #3
0
        public static uint SimulateKeyPress(Win32API.VirtualKey vkCode, Win32API.ScanCode scanCode, bool extended)
        {
            uint ret = 0;

            ret = SimulateKeyDown(vkCode, scanCode, extended);
            if (ret == 1)
            {
                ret = SimulateKeyUp(vkCode, scanCode, extended);
            }

            return(ret);
        }
Пример #4
0
 public static bool SimulateKeyPressAsync(Win32API.VirtualKey vkCode, Win32API.ScanCode scanCode, bool extended)
 {
     return(ThreadPool.QueueUserWorkItem(new WaitCallback(SimulateKeyPressInvoker), new KeyPress(vkCode, scanCode, extended)));
 }
Пример #5
0
 public KeyPress(Win32API.VirtualKey vkCode, Win32API.ScanCode scanCode, bool extended)
 {
     VkCode   = vkCode;
     ScanCode = scanCode;
     Extended = extended;
 }