private bool SendVKeyNative64(uint keyStroke, KeySet keyset) { var input = new NativeMethods.INPUT64(); input.Type = InputType.Keyboard; input.Flags = keyStroke | keyset.Flag; input.VirtualKey = keyset.VirtualKey; // input.ScanCode = (ushort)(NativeMethods.MapVirtualKey3((uint)keyset.VirtualKey, NativeMethods.MAPVK_VK_TO_VSC, _keyboardLayout) & 0xFFU); input.ScanCode = 0; input.Time = 0; input.ExtraInfo = NativeMethods.GetMessageExtraInfo(); NativeMethods.INPUT64[] inputs = { input }; if (NativeMethods.SendInput64(1, inputs, Marshal.SizeOf(typeof(NativeMethods.INPUT64))) != 1) { return(false); } return(true); }
private void bufferKey64bit(byte virtualKeyCode, ushort scanCode, KeyEvent keyEvent) { NativeMethods.INPUT64 input = new NativeMethods.INPUT64(); input.type = NativeMethods.INPUT_KEYBOARD; input.ki.wVk = (byte)virtualKeyCode; input.ki.wScan = scanCode; if (keyEvent == KeyEvent.KeyUp) input.ki.dwFlags = NativeMethods.KEYEVENTF_KEYUP; _keyboardInputs64.Add(input); }