Beispiel #1
0
        private static Win32Structures.INPUT BuildKeyboardInput(Win32Structures.ScanCodeShort scanCode, bool isKeyUp, bool isExtended)
        {
            Win32Structures.KEYEVENTF keyEventFlags = Win32Structures.KEYEVENTF.SCANCODE;

            if (isExtended)
            {
                keyEventFlags |= Win32Structures.KEYEVENTF.EXTENDEDKEY;
            }

            if (isKeyUp)
            {
                keyEventFlags |= Win32Structures.KEYEVENTF.KEYUP;
            }

            return(new Win32Structures.INPUT()
            {
                type = Win32Structures.INPUT_KEYBOARD,
                U = new Win32Structures.InputUnion()
                {
                    ki = new Win32Structures.KEYBDINPUT()
                    {
                        scanCode = scanCode,
                        vkCode = 0,
                        flags = keyEventFlags,
                        time = 0,
                        dwExtraInfo = (UIntPtr)0
                    }
                }
            });
        }
Beispiel #2
0
        public static void SendKeyPress(Win32Structures.ScanCodeShort scanCode, bool isKeyUp, bool isExtended)
        {
            var pInputs = new Win32Structures.INPUT[]
            {
                BuildKeyboardInput(scanCode, isKeyUp, isExtended)
            };

            SendInput((uint)pInputs.Length, pInputs, Win32Structures.INPUT.Size);
        }
Beispiel #3
0
 public static string GetKeyDisplayName(Win32Structures.ScanCodeShort scanCode, bool isExtended)
 {
     if (isExtended)
     {
         _displayKeyNamesExtended.TryGetValue(scanCode, out var name);
         return(name);
     }
     else
     {
         _displayKeyNames.TryGetValue(scanCode, out var name);
         return(name);
     }
 }