Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import ctypes
- PUL = ctypes.POINTER(ctypes.c_ulong)
- class KeyBdInput(ctypes.Structure):
- _fields_ = [("wVk", ctypes.c_ushort),
- ("wScan", ctypes.c_ushort),
- ("dwFlags", ctypes.c_ulong),
- ("time", ctypes.c_ulong),
- ("dwExtraInfo", PUL)]
- class HardwareInput(ctypes.Structure):
- _fields_ = [("uMsg", ctypes.c_ulong),
- ("wParamL", ctypes.c_short),
- ("wParamH", ctypes.c_ushort)]
- class MouseInput(ctypes.Structure):
- _fields_ = [("dx", ctypes.c_long),
- ("dy", ctypes.c_long),
- ("mouseData", ctypes.c_ulong),
- ("dwFlags", ctypes.c_ulong),
- ("time", ctypes.c_ulong),
- ("dwExtraInfo", PUL)]
- class Input_I(ctypes.Union):
- _fields_ = [("ki", KeyBdInput),
- ("mi", MouseInput),
- ("hi", HardwareInput)]
- class Input(ctypes.Structure):
- _fields_ = [("type", ctypes.c_ulong),
- ("ii", Input_I)]
- def set_pos(x, y):
- x = 1 + int(x * 65536./1920.)
- y = 1 + int(y * 65536./1080.)
- extra = ctypes.c_ulong(0)
- ii_ = Input_I()
- ii_.mi = MouseInput(x, y, 0, (0x0001 | 0x8000), 0, ctypes.pointer(extra))
- command = Input(ctypes.c_ulong(0), ii_)
- ctypes.windll.user32.SendInput(1, ctypes.pointer(command), ctypes.sizeof(command))
- def left_click():
- extra = ctypes.c_ulong(0)
- ii_ = Input_I()
- ii_.mi = MouseInput(0, 0, 0, 0x0002, 0, ctypes.pointer(extra))
- x = Input(ctypes.c_ulong(0), ii_)
- ctypes.windll.user32.SendInput(1, ctypes.pointer(x), ctypes.sizeof(x))
- extra = ctypes.c_ulong(0)
- ii_ = Input_I()
- ii_.mi = MouseInput(0, 0, 0, 0x0004, 0, ctypes.pointer(extra))
- x = Input(ctypes.c_ulong(0), ii_)
- ctypes.windll.user32.SendInput(1, ctypes.pointer(x), ctypes.sizeof(x))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement