Я работаю с приложением WPF, отправляющим ключи к игре. Я открыл spy ++ для наблюдателей как ключевое нажатие на клавиатуре. Затем я нажимаю свою кнопку на приложении, и я заметил другой код сканирования в сообщениях spy ++. Может ли это быть чем-то связанным с Windows 7 64bit? Частичный список:Код сканирования SendInput в Windows 7 x64
var down = new INPUT();
down.Type = (UInt32)InputType.KEYBOARD;
down.Data.Keyboard = new KEYBDINPUT();
down.Data.Keyboard.Vk = (UInt16)keyCode;
down.Data.Keyboard.Scan = 0;
down.Data.Keyboard.Flags = 0;
down.Data.Keyboard.Time = 0;
down.Data.Keyboard.ExtraInfo = IntPtr.Zero;
//down.Data.Keyboard.ExtraInfo = GetMessageExtraInfo();
var up = new INPUT();
up.Type = (UInt32)InputType.KEYBOARD;
up.Data.Keyboard = new KEYBDINPUT();
up.Data.Keyboard.Vk = (UInt16)keyCode;
up.Data.Keyboard.Scan = 0;
up.Data.Keyboard.Flags = (UInt32)KeyboardFlag.KEYUP;
up.Data.Keyboard.Time = 0;
up.Data.Keyboard.ExtraInfo = IntPtr.Zero;
//up.Data.Keyboard.ExtraInfo = GetMessageExtraInfo();
INPUT[] inputList = new INPUT[2];
inputList[0] = down;
inputList[1] = up;
var numberOfSuccessfulSimulatedInputs = SendInput(2, inputList, Marshal.SizeOf(typeof(INPUT)));
Изображение показывает, когда я использую мой код, чтобы отправить ключ я получаю Scancode: 00fExtended от выхода Шпион ++ сообщений. Когда я на самом деле нажимаю ту же клавишу, я получаю ScanCode: 1FfExtended. Все остальное идентично.
http://spilmansoftware.com/images/scancode.gif http://spilmansoftware.com/images/scancode.gif
Хороший улов! Спасибо. – Stanomatic