public static void SendKeyUp(ushort k) { INPUT[] InputData = new INPUT[1]; InputData[0].Type = 1; //INPUT_KEYBOARD InputData[0].Scan = (ushort)k; InputData[0].Flags = (uint)(SendInputFlags.KEYEVENTF_SCANCODE | SendInputFlags.KEYEVENTF_KEYUP); InputData[0].Time = 0; InputData[0].ExtraInfo = UIntPtr.Zero; // send keydown SendInput(1, InputData, Marshal.SizeOf(typeof(INPUT))); }
protected override INPUT[] ToDirectInput() { var input = new INPUT() { Type = 0, Mouse = new MOUSEINPUT() { Time = 0, Data = 0, DX = 0, DY = 0, ExtraInfo = UIntPtr.Zero, Flags = 0 } }; switch (Button) { case System.Windows.Forms.MouseButtons.Left: input.Mouse.Flags = 0x2; break; case System.Windows.Forms.MouseButtons.Right: input.Mouse.Flags = 0x8; break; case System.Windows.Forms.MouseButtons.Middle: input.Mouse.Flags = 0x20; break; case System.Windows.Forms.MouseButtons.XButton1: input.Mouse.Flags = 0x80; input.Mouse.Data = 0x1; break; case System.Windows.Forms.MouseButtons.XButton2: input.Mouse.Flags = 0x80; input.Mouse.Data = 0x2; break; } return new[] { input }; }