尝试用底层鼠标:import ctypesimport time
# 定义常量PUL = ctypes.POINTER(ctypes.c_ulong)MOUSEEVENTF_LEFTDOWN = 0x0002MOUSEEVENTF_LEFTUP = 0x0004
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(ctypes.Structure): class _INPUT(ctypes.Union): _fields_ = [("mi", MOUSEINPUT)] _anonymous_ = ("_input",) _fields_ = [("type", ctypes.c_ulong), ("_input", _INPUT)]
def click(x, y): ctypes.windll.user32.SetCursorPos(x, y) # 移动鼠标到指定位置 # 模拟鼠标按下 mouse_input_down = INPUT(type=0, mi=MOUSEINPUT(0, 0, 0, MOUSEEVENTF_LEFTDOWN, 0, ctypes.pointer(ctypes.c_ulong(0)))) ctypes.windll.user32.SendInput(1, ctypes.pointer(mouse_input_down), ctypes.sizeof(mouse_input_down)) time.sleep(0.05) # 停顿一会,模拟按下时间 # 模拟鼠标释放 mouse_input_up = INPUT(type=0, mi=MOUSEINPUT(0, 0, 0, MOUSEEVENTF_LEFTUP, 0, ctypes.pointer(ctypes.c_ulong(0)))) ctypes.windll.user32.SendInput(1, ctypes.pointer(mouse_input_up), ctypes.sizeof(mouse_input_up))