[DllImport("user32.dll")]static extern void mouse_event(MouseEventFlag flags, int dx, int dy, uint data, UIntPtr extraInfo); //鼠标事件[DllImport("user32.dll")] //强制设置鼠标坐标//设置真实鼠标位置的方法public static extern int SetCursorPos(int x, int y);[Flags]enum MouseEventFlag : uint{Move = 0x0001,LeftDown = 0x0002,LeftUp = 0x0004,RightDown = 0x0008,RightUp = 0x0010,MiddleDown = 0x0020,MiddleUp = 0x0040,XDown = 0x0080,XUp = 0x0100,Wheel = 0x0800,VirtualDesk = 0x4000,Absolute = 0x8000}[DllImport("user32.dll", EntryPoint = "keybd_event")]static extern void keybd_event(byte bVk, //虚拟键值 对应按键的ascll码十进制值 byte bScan, //0int dwFlags, //0 为按下,1按住,2为释放 int dwExtraInfo //0);/// <summary>/// 调用此方法即可模拟键盘点击/// </summary>/// <param name="i"></param>private void inputButton(byte i){keybd_event(i, 0, 0, 0);//keybd_event(66, 0, 1, 0);keybd_event(i, 0, 2, 0);Debug.Log("模拟按B");}private void Update(){if (Input.GetKeyDown(KeyCode.Space)){SetCursorPos(1920, 0);}if (Input.GetKeyDown(KeyCode.Q)){SetCursorPos(1920, 1080);}if (Input.GetKeyDown(KeyCode.W)){SetCursorPos(0, 1080);}if (Input.GetKeyDown(KeyCode.E)){SetCursorPos(0, 0);}}UdpClient udpClient;Thread udpThd;IPEndPoint ipEndPoint;string cmdStr = null;bool isSend = true;/// <summary>/// 鼠标右键点击了一下/// </summary>public void MouseClickSimulate(){mouse_event(MouseEventFlag.LeftDown, 0, 0, 0, UIntPtr.Zero);mouse_event(MouseEventFlag.LeftUp, 0, 0, 0, UIntPtr.Zero);}
注意:如果你使用IE浏览器来测试键盘点击,英文字母没有问题,而小键盘的上下左右等都无法正确表示,其他浏览器,文本,PPt都可正常模拟。
键盘多少数字百度即可
代码监听发生的鼠标键盘事件,放入Update
if (Input.anyKeyDown){foreach (KeyCode keyCode in Enum.GetValues(typeof(KeyCode))){if (Input.GetKeyDown(keyCode)){Debug.LogError("Current Key is : " + keyCode.ToString());}}}