Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using UnityEngine;
- using System.Runtime.InteropServices;
- public class SimulateLeftClick : MonoBehaviour
- {
- [DllImport("user32.dll")]
- public static extern bool SetCursorPos(int X, int Y);
- public void Start()
- {
- SetCursorPos(50, 50);
- MouseOperations.MouseEvent(MouseOperations.MouseEventFlags.LeftDown | MouseOperations.MouseEventFlags.LeftUp);
- }
- }
- public class MouseOperations
- {
- [System.Flags]
- public enum MouseEventFlags
- {
- LeftDown = 0x00000002,
- LeftUp = 0x00000004,
- MiddleDown = 0x00000020,
- MiddleUp = 0x00000040,
- Move = 0x00000001,
- Absolute = 0x00008000,
- RightDown = 0x00000008,
- RightUp = 0x00000010
- }
- [DllImport("user32.dll", EntryPoint = "SetCursorPos")]
- [return: MarshalAs(UnmanagedType.Bool)]
- private static extern bool SetCursorPos(int X, int Y);
- [DllImport("user32.dll")]
- [return: MarshalAs(UnmanagedType.Bool)]
- private static extern bool GetCursorPos(out MousePoint lpMousePoint);
- [DllImport("user32.dll")]
- private static extern void mouse_event(int dwFlags, int dx, int dy, int dwData, int dwExtraInfo);
- public static void SetCursorPosition(int X, int Y)
- {
- SetCursorPos(X, Y);
- }
- public static void SetCursorPosition(MousePoint point)
- {
- SetCursorPos(point.X, point.Y);
- }
- public static MousePoint GetCursorPosition()
- {
- MousePoint currentMousePoint;
- var gotPoint = GetCursorPos(out currentMousePoint);
- if (!gotPoint) { currentMousePoint = new MousePoint(0, 0); }
- return currentMousePoint;
- }
- public static void MouseEvent(MouseEventFlags value)
- {
- MousePoint position = GetCursorPosition();
- mouse_event
- ((int)value,
- position.X,
- position.Y,
- 0,
- 0)
- ;
- }
- [StructLayout(LayoutKind.Sequential)]
- public struct MousePoint
- {
- public int X;
- public int Y;
- public MousePoint(int x, int y)
- {
- X = x;
- Y = y;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement