• python32模拟鼠标和键盘操作


    前言
    Windows pywin32允许你像vc一样的形式来使用python开发win32应用。代码风格可以类似win32 sdk,也可以类似MFC,由你选择。如果你仍不放弃vc一样的代码过程在python下,这不错的选择。

    利用pywin32可以自动化进行电脑操作。包括复制粘贴,鼠标移动,键盘输入等等。

    下载链接

    一、pywin32常用函数
    (1)获取鼠标位置
    win32api.GetCursorPos()
    1
    (2)鼠标左键按下
    win32api.mouse_event(win32con.MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0)
    1
    (3)鼠标左键放开
    win32api.mouse_event(win32con.MOUSEEVENTF_LEFTUP, 0, 0, 0, 0)
    1
    (4)鼠标右键按下
    win32api.mouse_event(win32con.MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0)
    1
    (5)鼠标右键放开
    win32api.mouse_event(win32con.MOUSEEVENTF_LEFTUP, 0, 0, 0, 0)
    1
    (6)设置鼠标位置
    win32api.SetCursorPos((x, y))
    1
    (7)键盘输入事件
    win32api.keybd_event(VK_CODE[word], 0, 0, 0)
    win32api.keybd_event(VK_CODE[word], 0, win32con.KEYEVENTF_KEYUP, 0)
    1
    2
    二、封装接口
    (1)获取当前鼠标位置
    def cursor_point(self):
    """
    获取当前鼠标位置
    """
    pos = win32api.GetCursorPos()
    return int(pos[0]), int(pos[1])
    1
    2
    3
    4
    5
    6
    (2)鼠标左击事件
    def mouse_left_click(self, new_x=None, new_y=None, times=1):
    """
    鼠标左击事件
    :param new_x: 新移动的坐标x轴坐标
    :param new_y: 新移动的坐标y轴坐标1506240215
    :param times: 点击次数
    """
    self.mouse_move(new_x, new_y)
    time.sleep(0.05)
    while times:
    win32api.mouse_event(win32con.MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0)
    win32api.mouse_event(win32con.MOUSEEVENTF_LEFTUP, 0, 0, 0, 0)
    times -= 1
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    (3)鼠标右击事件
    def mouse_right_click(self, new_x=None, new_y=None):
    """
    鼠标右击事件
    :param new_x: 新移动的坐标x轴坐标
    :param new_y: 新移动的坐标y轴坐标
    """
    self.mouse_move(new_x, new_y)
    time.sleep(0.05)
    win32api.mouse_event(win32con.MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0)
    win32api.mouse_event(win32con.MOUSEEVENTF_LEFTUP, 0, 0, 0, 0)
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    (4)移动鼠标位置
    def mouse_move(self, new_x, new_y):
    if new_y is not None and new_x is not None:
    point = (new_x, new_y)
    win32api.SetCursorPos(point)
    self.x = new_x
    self.y = new_y
    1
    2
    3
    4
    5
    6
    (5)键盘输入文本
    def key_input(self, input_words=''):
    for word in input_words:
    win32api.keybd_event(VK_CODE[word], 0, 0, 0)
    win32api.keybd_event(VK_CODE[word], 0, win32con.KEYEVENTF_KEYUP, 0)
    time.sleep(0.1)
    1
    2
    3
    4
    5
    (6)键盘输入事件
    def key_even(self, input_key):
    win32api.keybd_event(VK_CODE[input_key], 0, 0, 0)
    win32api.keybd_event(VK_CODE[input_key], 0, win32con.KEYEVENTF_KEYUP, 0)
    time.sleep(1)
    1
    2
    3
    4
    三、代码仓库
    ---------------------
    作者:毕宿
    来源:CSDN
    原文:https://blog.csdn.net/qq_33371343/article/details/78916751
    版权声明:本文为博主原创文章,转载请附上博文链接!

  • 相关阅读:
    sql server数据库中char,varchar,nvarchar字段的区别
    SQLServer 实现rownum 的功能
    web.config加密和解密
    页面命名和用户控件命名一样带来的后果
    oracle初识
    加载类成员技巧
    string.Empty与"",null的区别
    收集了一些有关网页设计的问题集
    网页最顶部转瞬即逝的巨幅广告特效
    鼠标放在图片连接上面,预览图片
  • 原文地址:https://www.cnblogs.com/xiohao/p/10407548.html
Copyright © 2020-2023  润新知