python模拟鼠标和键盘

利用python实现模拟鼠标和键盘的相关操作,可以实现对判断结果可视化。(或者实现一些其他的有趣的功能)

1. 环境配置

python3.5的PyMouse和PyKeyboard模块都集成到了PyUserInput模块中。1
因此需要确保已经完成了PyUserInput模块的安装。如果尚未完成可照我另一篇博文:
windows7 Anaconda3 pyuserinput模块安装指南(解决pip install无法使用)

2. 操作思路

PyMouse模块是一个模拟鼠标的类,集成在【pymouse】包中,包含了move, click, press等方法,分别可以模拟鼠标的移动、点击等操作。鼠标所在位置是基于电脑屏幕分辨率、由用户指定的。即,将电脑屏幕看做一个二维平面,每个像素为平面坐标系中的一个点,原点在左上角,x轴和y轴分别向右向下延伸。据此对鼠标定位。

PyKeyboard模块是一个模拟键盘的类,集成在【pykeyboard】包中,包含了press_key, release_key等方法,分别可以模拟按键和松开的操作,另有一些方法可以实现同时按键。

3. 开始使用

  • 导入函数库
from pymouse import *     # 模拟鼠标所使用的包
from pykeyboard import *   # 模拟键盘所使用的包
import time   # 连续进行两个动作可能太快而效果不明显,因此加入暂停时间
  • 实例化
m = PyMouse()   # 鼠标的实例m
k = PyKeyboard()   # 键盘的实例k
  • 模拟鼠标操作
x_dim, y_dim = m.screen_size()     # 获取屏幕尺寸(一般为电脑屏幕的分辨率,如1920*1080)
# 估计需要点击的位置坐标(不知道有没有定位代码,我没找到,我是自己估计的。例如,我的电脑屏幕为(1920,1080),我想要单击的地方估计坐标为(10,500))
m.move(10, 500)   # 将鼠标移动到位(此步可忽略,直接单击也可)
time.sleep(0.5)   # 暂停0.5s,方便观察移动结果
m.click(10, 500, 1, 1)   # 表示在(10, 500)的地方,单击左键

鼠标操作说明

m.move(x, y) # 鼠标移动到坐标(x, y)
m.click(x, y, button, n) # 鼠标点击。x,y–坐标, button–按键选项(1为左键,2为右键),n–点击次数(默认1此,2表示双击,仅此两个值)
m.screen_size() # 获取屏幕尺寸,返回两个值分别为长和宽

  • 模拟键盘操作
k.type_string('hello world')   # 模拟键盘输入字符串
k.press_key(‘H’) –模拟键盘按H键 
k.release_key(‘H’) –模拟键盘松开H键 

键盘操作说明2
单个按键

代码功能
k.type_string(‘Hello, World!’)模拟键盘输入字符串
k.press_key(‘H’)模拟键盘按H键
k.release_key(‘H’)模拟键盘松开H键
k.tap_key(“H”)模拟点击H键
k.tap_key(‘H’,n=2,interval=5)模拟点击H键,2次,每次间隔5秒
k.tap_key(k.function_keys[5])点击功能键F5
k.tap_key(k.numpad_keys[5],3)点击小键盘5,3次

组合键(例如同时按alt+tab键盘 )

代码功能
k.press_key(k.alt_key)按住alt键
k.tap_key(k.tab_key)点击tab键
k.release_key(k.alt_key)松开alt键

常见的键和键值码(例如Page Up键可用数字33实现)见网页:

用python代码模拟键盘输入

4. 完整应用示例

接下来将用代码实现:打开记事本,切换输入法,键入hello world。
首先准备好电脑界面(便于指定鼠标单击的位置):
运行代码前的准备界面
代码如下所示:

from pykeyboard import *
from pymouse import *
import time

m = PyMouse()                                   # 鼠标对象
k = PyKeyboard()                                # 键盘对象

x_dim, y_dim = m.screen_size()                  # 获得屏幕尺寸
print('屏幕尺寸为: ', x_dim, y_dim)
m.move(7, 510)
time.sleep(0.5)                                 # 留点时间鼠标移动到该位置
m.click(7, 510, 1, 1)                           # 在坐标(7,510)处单击左键
time.sleep(0.5)
k.tap_key(16)                                   # 按下shift键,切换至英文输入法
k.type_string('hello world')                    # 在记事本中键入hello world

运行结果:
运行代码后的结果


  1. PyUserInput操作说明 ↩︎

  2. python3.6 怎样使用pymouse模拟鼠标键盘操作? ↩︎

  • 34
    点赞
  • 245
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值