Python 模拟用户操作鼠标

查看 72|回复 9
作者:相位猛冲   
传入坐标x、y直接调用就行了
[Python] 纯文本查看 复制代码
import pyautogui,win32gui
鼠标_单击_模拟用户(坐标x,坐标y)
def 鼠标_单击_模拟用户(x, y, 窗口句柄=None, action=1):
    ' 模拟用户点击鼠标\n\n 窗口句柄可以不填 action=1表示左键单击,action=2表示双击'
    original_pos = pyautogui.position()
    try:
        if 窗口句柄:
            try:
                win32gui.SetForegroundWindow(窗口句柄)
            except Exception as e:
                print(f"无法设置窗口句柄({窗口句柄})为前台窗口:", e)
                return False
            x_screen, y_screen = win32gui.ClientToScreen(窗口句柄, (x, y))
            print(f"客户区坐标转屏幕坐标:({x}, {y}) -> ({x_screen}, {y_screen})")
        # 映射鼠标操作
        operations = {
            1: lambda: pyautogui.click(x_screen, y_screen),
            2: lambda: pyautogui.doubleClick(x_screen, y_screen),
            3: lambda: pyautogui.mouseDown(x=x_screen, y=y_screen, button='left'),
            4: lambda: pyautogui.mouseUp(x=x_screen, y=y_screen, button='left')
        }
        # 获取对应的鼠标操作
        operation = operations.get(action)
        if not operation:
            print(f"无效的鼠标操作: {action}")
            return False
        # 执行对应的鼠标操作
        operation()
        print(f"执行了鼠标操作: {action} 在 ({x_screen}, {y_screen})")
    except Exception as e:
        print("无法执行鼠标操作,出现异常:", e)
        return False
    finally:
        # 恢复鼠标位置
        pyautogui.moveTo(*original_pos)
    return True

鼠标, 句柄

Chenanin   


P3terJ 发表于 2024-1-20 16:56
函数使用了中文??

python3.x  版本就支持中文变量了,但是有可能在使用第三方库或者接口的时候出现莫名奇妙的问题
chayunyuxiang   

坐个一楼
y72463700   

坐个二楼
losingstars   

这代码能运行?
P3terJ   

函数使用了中文??
wikiyc   

这个方法我还真不用,学习了。
raindrop00   

感谢分享,学习了
JOJO2   

感谢楼主的分享。
sai609   

中文还是先行转译为English
您需要登录后才可以回帖 登录 | 立即注册

返回顶部