Python 鼠标模拟点击:实现真实移动轨迹

在使用 Python 进行自动化操作时,模拟鼠标点击是一个常见的需求。然而,使用简单的 win32api.SendMessage 函数进行模拟点击,并不会展现真实的鼠标移动轨迹,而这可能会导致一些问题,例如被某些应用程序识别为恶意操作。

为了实现鼠标有真实移动轨迹的移动和点击,可以使用 win32api.mouse_event 函数来模拟鼠标移动和点击的操作。以下是修改后的代码:

import win32api
import win32con
import win32gui
import time

def send_mouse_click(hwnd, x, y, time_=0.1):
    # 获取窗口的客户区坐标
    rect = win32gui.GetClientRect(hwnd)
    offset_x = rect[0]
    offset_y = rect[1]
    
    # 计算相对于窗口客户区的鼠标位置
    client_x = offset_x + x
    client_y = offset_y + y
    
    # 将鼠标移动到目标位置
    win32api.SetCursorPos((client_x, client_y))
    time.sleep(time_)
    
    # 模拟鼠标左键按下和释放操作
    win32api.mouse_event(win32con.MOUSEEVENTF_LEFTDOWN, client_x, client_y, 0, 0)
    win32api.mouse_event(win32con.MOUSEEVENTF_LEFTUP, client_x, client_y, 0, 0)

在这个修改后的代码中,首先通过 win32gui.GetClientRect 函数获取窗口的客户区坐标,并计算了相对于客户区的鼠标位置。然后使用 win32api.SetCursorPos 函数将鼠标移动到目标位置,并通过 win32api.mouse_event 函数模拟鼠标左键按下和释放操作。

请注意,这里的 hwnd 参数是窗口的句柄,需要根据具体的应用场景进行获取。

使用示例:

# 获取目标窗口的句柄
hwnd = win32gui.FindWindow(None, '目标窗口标题')

# 模拟鼠标点击窗口内的坐标 (100, 100)
send_mouse_click(hwnd, 100, 100)

通过使用 win32api.mouse_event 函数模拟鼠标移动和点击,可以实现更自然的鼠标操作,并避免被应用程序识别为恶意操作。

Python 鼠标模拟点击:实现真实移动轨迹

原文地址: https://www.cveoy.top/t/topic/m2wT 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录