示例#1
0
 public static extern uint SendInput(uint nInputs, INPUT[] pInputs, int cbSize);
示例#2
0
 public static uint SendInput(INPUT[] inputs)
 {
     if (inputs.Length > 0)
         return Api_User32.SendInput((uint)inputs.Length, inputs, Marshal.SizeOf(inputs[0]));
     else
         return 0;
 }
示例#3
0
 public static void SetMousePosition(int dx, int dy, bool relative)
 {
     INPUT[] inp = new INPUT[1];
     inp[0].type = Win32Const.INPUT_MOUSE;
     if (relative)
         inp[0].mi.dwFlags = Win32Const.MOUSEEVENTF_MOVE;
     else
         inp[0].mi.dwFlags = Win32Const.MOUSEEVENTF_MOVE | Win32Const.MOUSEEVENTF_ABSOLUTE;
     inp[0].mi.dx = dx;
     inp[0].mi.dy = dy;
     inp[0].mi.mouseData = 0;
     inp[0].mi.time = 0;
     inp[0].mi.dwExtraInfo = Api_User32.GetMessageExtraInfo();
     Win32.SendInput(inp);
 }
示例#4
0
        //***************************************************************************
        // USER32 - Input
        public static void SendKeyPress(VK key)
        {
            INPUT[] inp = new INPUT[1];
            inp[0].type = Win32Const.INPUT_KEYBOARD;
            inp[0].ki.wScan = 0;
            inp[0].ki.dwFlags = 0;
            inp[0].ki.time = 0;
            inp[0].ki.wVk = (ushort)key;
            inp[0].ki.dwExtraInfo = Api_User32.GetMessageExtraInfo();
            Win32.SendInput(inp);

            // And now send the key release.
            inp[0].ki.dwFlags = Win32Const.KEYEVENTF_KEYUP;
            Win32.SendInput(inp);
        }