public static void mouse_input_handler(Global.MTransferStruct transfer_struct) { Global.INPUT[] inp = new Global.INPUT[1]; inp[0].type = (int)Global.InputType.MOUSE; Global.MOUSEINPUT ms = new Global.MOUSEINPUT(); switch (transfer_struct.Flag) { case 512: ms.dx = (int)Math.Round(transfer_struct.XCoord * 65536, 0); ms.dy = (int)Math.Round(transfer_struct.YCoord * 65536, 0); ms.dwFlags = 0x0001 | 0x8000; break; case 522: ms.dwFlags = 0x0800; ms.mouseData = transfer_struct.Data; break; default: ms.dwFlags = (int)System.Math.Pow(2, Array.IndexOf(Powers, transfer_struct.Flag) + 1); break; } inp[0].inputUnion.mi = ms; SendInput(1, inp, Marshal.SizeOf(inp[0])); }
public static void keyboard_input_handler(Global.KTransferStruct transfer_struct) { Global.INPUT[] input = new Global.INPUT[1]; input[0].type = (int)Global.InputType.KEYBOARD; Global.KEYBDINPUT kb = new Global.KEYBDINPUT(); kb.wVk = transfer_struct.VKode; kb.dwFlags = transfer_struct.Flag; input[0].inputUnion.ki = kb; SendInput(1, input, Marshal.SizeOf(input[0])); }