private Key(SerializationInfo info, StreamingContext context) { KeyDownStrokes = new List<KeyStroke>(); KeyUpStrokes = new List<KeyStroke>(); //int version = info.GetInt32("Version"); Name = info.GetString("keyName"); InfoWindowsKeys = info.GetString("InfoWindowsKeys"); int totalKeyDown = info.GetInt32("TotalKeyDown"); for (int i = 0; i < totalKeyDown; i++) { var ks = new KeyStroke(); ks.code = info.GetUInt16("kd_c_" + i); ks.information = info.GetUInt32("kd_i_" + i); ks.state = (Keyboard.States)info.GetUInt16("kd_s_" + i); KeyDownStrokes.Add(ks); } int totalKeyUp = info.GetInt32("TotalKeyUp"); for (int i = 0; i < totalKeyUp; i++) { var ks = new KeyStroke(); ks.code = info.GetUInt16("ku_c_" + i); ks.information = info.GetUInt32("ku_i_" + i); ks.state = (Keyboard.States)info.GetUInt16("ku_s_" + i); KeyUpStrokes.Add(ks); } }
public KeyStroke Clone() { var newKey = new KeyStroke() { code = this.code, information = this.information, state = this.state }; return newKey; }
// ReSharper restore InconsistentNaming public KeyStroke Read() { KEYBOARD_INPUT_DATA outBuffer = new KEYBOARD_INPUT_DATA(); uint bytesReturned = 0; uint outBufferSize = (uint) Marshal.SizeOf(typeof(KEYBOARD_INPUT_DATA)); RawRead(base.device, 0x222100, IntPtr.Zero, 0, out outBuffer, outBufferSize, out bytesReturned, IntPtr.Zero); if (bytesReturned > 0) { var keyStroke = new KeyStroke(); keyStroke.code = outBuffer.MakeCode; keyStroke.state = (States) outBuffer.Flags; keyStroke.information = outBuffer.ExtraInformation; return keyStroke; } return null; }
public uint Read(KeyStroke[] keyStrokes, int number) { if ((number <= 0) || (keyStrokes.Length < number)) { return 0; } KEYBOARD_INPUT_DATA[] outBuffer = new KEYBOARD_INPUT_DATA[number]; uint bytesReturned = 0; uint num2 = (uint) Marshal.SizeOf(typeof(KEYBOARD_INPUT_DATA)); RawRead(base.device, 0x222100, IntPtr.Zero, 0, outBuffer, (uint) (number * num2), out bytesReturned, IntPtr.Zero); bytesReturned /= num2; for (int i = 0; i < bytesReturned; i++) { keyStrokes[i].code = outBuffer[i].MakeCode; keyStrokes[i].state = (States) outBuffer[i].Flags; keyStrokes[i].information = outBuffer[i].ExtraInformation; } return bytesReturned; }
internal SendMakeCommand(KeyStroke keyStroke, KeyboardManager keyboardManager, int keyboardNumber) { _keyStroke = keyStroke; _keyboardManager = keyboardManager; _keyboardNumber = keyboardNumber; }
public uint Read(KeyStroke[] keyStrokes) { return Read(keyStrokes, keyStrokes.Length); }
public uint Write(KeyStroke[] keyStrokes, int number) { if ((number <= 0) || (keyStrokes.Length < number)) { return 0; } KEYBOARD_INPUT_DATA[] inBuffer = new KEYBOARD_INPUT_DATA[number]; uint bytesReturned = 0; uint num2 = (uint) Marshal.SizeOf(typeof(KEYBOARD_INPUT_DATA)); for (int i = 0; i < number; i++) { inBuffer[i].UnitId = 0; inBuffer[i].MakeCode = keyStrokes[i].code; inBuffer[i].Flags = (ushort) keyStrokes[i].state; inBuffer[i].Reserved = 0; inBuffer[i].ExtraInformation = keyStrokes[i].information; } RawWrite(base.device, 0x222080, inBuffer, (uint) (number * num2), IntPtr.Zero, 0, out bytesReturned, IntPtr.Zero); return (bytesReturned / num2); }
public uint Write(KeyStroke[] keyStrokes) { return this.Write(keyStrokes, keyStrokes.Length); }
public bool Write(KeyStroke keyStroke) { KEYBOARD_INPUT_DATA inBuffer = new KEYBOARD_INPUT_DATA(); uint bytesReturned = 0; uint inBufferSize = (uint) Marshal.SizeOf(typeof(KEYBOARD_INPUT_DATA)); inBuffer.UnitId = 0; inBuffer.MakeCode = keyStroke.code; inBuffer.Flags = (ushort) keyStroke.state; inBuffer.Reserved = 0; inBuffer.ExtraInformation = keyStroke.information; RawWrite(base.device, 0x222080, ref inBuffer, inBufferSize, IntPtr.Zero, 0, out bytesReturned, IntPtr.Zero); return (bytesReturned > 0); }
public bool Equals(KeyStroke other) { if (ReferenceEquals(null, other)) return false; if (ReferenceEquals(this, other)) return true; return other.code == code && other.information == information && Equals(other.state, state); }
public bool SendKeystroke(KeyStroke keyStroke, int keyboardNumber) { bool result = keyboards[keyboardNumber].Write(keyStroke); Console.WriteLine("Enviei keystroke: {0}, id {1}, OK: {2}", keyStroke.ToString(), keyboardNumber, result); return result; }
public static BitArray GetConnectedKeyboard() { var anyActive = false; var keyboardsStatus = new BitArray(10, false); var km = new KeyboardManager(); var keyStroke = new KeyStroke(); km.ListenKeyBoard(); for (int i = 0; i < keyboardsStatus.Length; i++) { keyStroke.code = 42; keyStroke.state = Keyboard.States.MAKE; if (km.SendKeystroke(keyStroke, i)) { if (!anyActive) { anyActive = true; _firstKeyboardActive = i; } //finish the keystroke keyStroke.state = Keyboard.States.BREAK; km.SendKeystroke(keyStroke, i); keyboardsStatus[i] = true; } } km.StopListenKeyBoard(); return keyboardsStatus; }