zoukankan      html  css  js  c++  java
  • 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
    版权声明:本文为博主原创文章,转载请附上博文链接!

  • 相关阅读:
    【go语言学习】标准库之time
    【go语言学习】文件操作file
    【go语言学习】反射reflect
    【go语言学习】通道channel
    soap添加
    ubuntu apache 启用gzip
    git 版本回退
    ubuntu打开crontab日志及不执行常见原因
    Ionic3 怎么打开第三方 app,最简单粗暴的方法
    Windows安装使用Openssl创建pks p12证书
  • 原文地址:https://www.cnblogs.com/xiohao/p/10407548.html
Copyright © 2011-2022 走看看