python实现按键精灵的功能_pyautogui简介_python中的按键精灵_键盘鼠标模拟
以下翻译来自官司网说明网站 pyautogui.readthedocs.io
pyautogui模块的目的是提供跨平台的自动化键盘鼠标操作。这个模块我们尽可能设计得容易使用。例如,下面的代码都会把鼠标指针移到计算机屏幕中央。
>>> import pyautogui
>>> screenWidth, screenHeight = pyautogui.size()
>>> pyautogui.moveTo(screenWidth / 2, screenHeight / 2)
pyautogui模块能让你模拟鼠标指针的移动、单击鼠标、拖曳鼠标指针,按住或松开某键,或者组合键也是没问题的。下面是一个例子:
>>> import pyautogui
>>> screenWidth, screenHeight = pyautogui.size() # 获取屏幕尺寸
>>> currentMouseX, currentMouseY = pyautogui.position() # 当前鼠标指针坐标
>>> pyautogui.moveTo(100, 150) # 移动鼠标到(100,150)坐标
>>> pyautogui.click() # 单击
>>> pyautogui.moveRel(None, 10) # move mouse 10 pixels down 向下移动鼠标指针10个像素
>>> pyautogui.doubleClick() # 双击
>>> pyautogui.moveTo(500, 500, duration=2, tween=pyautogui.easeInOutQuad) # 2秒内移动鼠标指针到某坐标
# 下面是模拟输入英文字符
>>> pyautogui.typewrite('Hello world!', interval=0.25) # 1/4秒的间隔时间输入一个字符
>>> pyautogui.press('esc') # 按esc键
>>> pyautogui.keyDown('shift') # 按住上档键
>>> pyautogui.press(['left', 'left', 'left', 'left', 'left', 'left']) # 按左左左左左左
>>> pyautogui.keyUp('shift') # 松开上档键
>>> pyautogui.hotkey('ctrl', 'c') # 按Ctrl + C键
下面的例子是拖动鼠标指针画一个方形螺旋图,请先打开mspaint,方法是按Win+r键,然后在运行对话框中输入 mspaint。
>>> distance = 200
>>> while distance > 0:
pyautogui.dragRel(distance, 0, duration=0.5) # 向右移动
distance -= 5
pyautogui.dragRel(0, distance, duration=0.5) # 向下移动
pyautogui.dragRel(-distance, 0, duration=0.5) # 向左移动
distance -= 5
pyautogui.dragRel(0, -distance, duration=0.5) # 向上移动
在Windows操作系统中,pyautogui不需要依赖其它模块。如,它不需要有pywin32模块支持,这是由于它使用ctypes模块。安装pyautogui的方法很简单,用 pip install pyautogui命令即可,它会安装pillow,以实现截屏功能。通过命令pyautogui.PAUSE = 2.5,可以让每次动作后暂停2.5秒。以下是右击,中击,双击,三击模拟代码:
>>> pyautogui.rightClick(x=moveToX, y=moveToY) # 右击
>>> pyautogui.middleClick(x=moveToX, y=moveToY) # 中击
>>> pyautogui.doubleClick(x=moveToX, y=moveToY) # 双击
>>> pyautogui.tripleClick(x=moveToX, y=moveToY) # 三击
以下是信息提示框功能:
>>> pyautogui.alert('显示一个有OK的提示对话框')
>>> pyautogui.confirm('显示一个有OK和Cancle的对话框')
'OK'
>>> pyautogui.prompt('输入对话框')
'This is what I typed in.'
下面是截屏功能:
>>> pyautogui.screenshot() # 返回pilllow图像模式
>>> pyautogui.screenshot('风火轮编程.png') #返回图像并保存到文件中
如果你想查找计算机屏上的某个图片,用locateOnScreen命令。以下是代码:
>>> pyautogui.locateOnScreen('风火轮编程_李兴球原创Python创意程序.png') # 返回找到的第一个矩形 (left, top, width, height)
(863, 417, 70, 13)
locateAllOnScreen命令能返回所有找到的图形,返回它们的矩形,以下是代码:
>>> for i in pyautogui.locateAllOnScreen('风火轮编程_李兴球_www.lixingqiu.com.png')
...
...
(863, 117, 70, 13)
(623, 137, 70, 13)
(853, 577, 70, 13)
(883, 617, 70, 13)
(973, 657, 70, 13)
(933, 877, 70, 13)
或像下面这样的代码也可以呀:
>>> list(pyautogui.locateAllOnScreen('www.scratch8.net.png'))
[(863, 117, 70, 13), (623, 137, 70, 13), (853, 577, 70, 13), (883, 617, 70, 13), (973, 657, 70, 13), (933, 877, 70, 13)]
下面的代码可以不断地获取鼠标指针坐标:
import pyautogui, sys
print('Press Ctrl-C to quit.') # 按Ctrl+C 中断
try:
while True:
x, y = pyautogui.position()
positionStr = 'X: ' + str(x).rjust(4) + ' Y: ' + str(y).rjust(4)
print(positionStr, end='')
print('\b' * len(positionStr), end='', flush=True)
except KeyboardInterrupt:
print('\n')
onScreen命令检测坐标是否在计算机屏幕范围内:
>>> pyautogui.onScreen(0, 0)
True
>>> pyautogui.onScreen(0, -1)
False
>>> pyautogui.onScreen(0, 99999999)
False
>>> pyautogui.size() # 屏幕尺寸
(1920, 1080)
>>> pyautogui.onScreen(1920, 1080)
False
>>> pyautogui.onScreen(1919, 1079)
True
拖动鼠标指针示例代码:
>>> pyautogui.dragTo(100, 200, button='left') # 按住左键,拖动鼠标指针到100,200坐标
>>> pyautogui.dragTo(300, 400, 2, button='left') # 按住左键,在2秒内拖动鼠标指针到100,200坐标
>>> pyautogui.drag(30, 0, 2, button='right') # 按住右键,在2秒内拖动鼠标指针到30,0坐标
下面的命令滚动鼠标,就是按滚轮模拟:
>>> pyautogui.scroll(10) # 向上滚动10次
>>> pyautogui.scroll(-10) # 向下滚动10次
>>> pyautogui.scroll(10, x=100, y=100) # 移动鼠标指针到100, 200, 然后滚动10次
以下是模拟键盘按键代码:
>>> pyautogui.keyDown('shift') # 按住shift键
>>> pyautogui.press('left') # 按左方向箭头
>>> pyautogui.press('left') # 按左方向箭头
>>> pyautogui.press('left') # 按左方向箭头
>>> pyautogui.keyUp('shift') # 松开shift键
下面是按键表:
['\t', '\n', '\r', ' ', '!', '"', '#', '$', '%', '&', "'", '(',
')', '*', '+', ',', '-', '.', '/', '0', '1', '2', '3', '4', '5', '6', '7',
'8', '9', ':', ';', '<', '=', '>', '?', '@', '[', '\\', ']', '^', '_', '`',
'a', 'b', 'c', 'd', 'e','f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o',
'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '{', '|', '}', '~',
'accept', 'add', 'alt', 'altleft', 'altright', 'apps', 'backspace',
'browserback', 'browserfavorites', 'browserforward', 'browserhome',
'browserrefresh', 'browsersearch', 'browserstop', 'capslock', 'clear',
'convert', 'ctrl', 'ctrlleft', 'ctrlright', 'decimal', 'del', 'delete',
'divide', 'down', 'end', 'enter', 'esc', 'escape', 'execute', 'f1', 'f10',
'f11', 'f12', 'f13', 'f14', 'f15', 'f16', 'f17', 'f18', 'f19', 'f2', 'f20',
'f21', 'f22', 'f23', 'f24', 'f3', 'f4', 'f5', 'f6', 'f7', 'f8', 'f9',
'final', 'fn', 'hanguel', 'hangul', 'hanja', 'help', 'home', 'insert', 'junja',
'kana', 'kanji', 'launchapp1', 'launchapp2', 'launchmail',
'launchmediaselect', 'left', 'modechange', 'multiply', 'nexttrack',
'nonconvert', 'num0', 'num1', 'num2', 'num3', 'num4', 'num5', 'num6',
'num7', 'num8', 'num9', 'numlock', 'pagedown', 'pageup', 'pause', 'pgdn',
'pgup', 'playpause', 'prevtrack', 'print', 'printscreen', 'prntscrn',
'prtsc', 'prtscr', 'return', 'right', 'scrolllock', 'select', 'separator',
'shift', 'shiftleft', 'shiftright', 'sleep', 'space', 'stop', 'subtract', 'tab',
'up', 'volumedown', 'volumemute', 'volumeup', 'win', 'winleft', 'winright', 'yen',
'command', 'option', 'optionleft', 'optionright']
查找屏幕上的像素:
>>> import pyautogui
>>> im = pyautogui.screenshot() # 获取快照,截屏
>>> im.getpixel((100, 200)) # 得到坐标点像素值
(130, 135, 144)
检测屏幕上某坐标点是否匹配像素值:
>>> import pyautogui
>>> pyautogui.pixelMatchesColor(100, 200, (130, 135, 144))
True
>>> pyautogui.pixelMatchesColor(100, 200, (0, 0, 0))
False
python实现按键精灵的功能_pyautogui简介_python中的按键精灵_键盘鼠标模拟相关推荐
- 鼠标光标一直在闪烁_便携有个性,功能强大,可配戴在手指上的键盘鼠标
中车永济电机有限公司.河南大学物理与电子学院的研究人员陶崇勃.侯卫周,在2019年<电气技术>增刊1中撰文(论文标题为"一款指尖压敏可配戴式键盘鼠标")指出,在信息科技 ...
- python代码风格程序越复杂越高级_Python中代码风格的改变和相应的性能优化
使用现代风格改善你的代码 一旦你开始使用 Python 3,你就有机会接触新的特性来改善你的代码.这篇文章中提到的很多东西实际上在 Python 3 之前就已经被支持了.但我还是要提一下它们,因为知道 ...
- python 自动化办公 uibot_使用 Python 扩展丰富 UiBot 的功能及在 UiBot 中引用 Python 模块...
前言 UiBot除了自带的强大功能外,还允许有编程经验的RPA开发人员对功能进行自由扩展,目前UiBot支持以下四种扩展方式: Python插件.Lua插件.Lua Mod插件.COM插件(.Net也 ...
- python数据格式简介_Python中数据类型时间的介绍(附代码)
本篇文章给大家带来的内容是关于Python中数据类型时间的介绍(附代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 1.什么是时间数据类型 Python中表示时间类型的数据结构为 ...
- python django下载 功能如何实现_Python中django文件传输下载功能的实现
Python中django文件传输下载功能的实现,基于Django建立的网站,如果提供文件下载功能,最简单的方式莫过于将静态文件交给Nginx等处理,但有些时候,由于网站本身逻辑,需要通过Django ...
- python watchdog 同时检测到多个事件_python中watchdog文件监控与检测上传功能
引言 上一篇介绍完了观察者模式的原理,本篇想就此再介绍一个小应用,虽然我也就玩了一下午,是当时看observer正好找到的,以及还有Django-observer,但Django很久没用了,所以提下这 ...
- python中input的功能是什么_python中的input的功能是什么
Python3.x中input()函数接受一个标准输入数据,返回为string类型. Python2.x中input() 相等于eval(raw_input(prompt)),用来获取控制台的输入. ...
- python程序的name的作用是什么_python 中__name__ = '__main__' 的作用,到底干嘛的?
python 中__name__ = 'main' 的作用,到底干嘛的? 有句话经典的概括了这段代码的意义: "Make a script both importable and execu ...
- python声明一个长度为n的列表_python中长度为n的列表的置换
所以我开始学习python,想做一个练习,写一个小脚本,看看能不能写.结果我不能把它放在右边,我会离开它,但是我有点下定决心,现在对这个特殊的功能产生了仇恨.在 我想让代码接受一个给定数字的原始输入, ...
最新文章
- .net 返回datatable显示sql列名_3汇总分析-SQL
- 【Red Hat 】vim编辑器的常用命令以及使用技巧
- 函数09 - 零基础入门学习C语言40
- Android点击Button实现功能的几种方法总结
- Python A+B问题
- leetcode(3)---寻找最大字符串
- 【链接】Linux C/C++ 学习路线-已拿腾讯、百度 offer
- Educational Codeforces Round 15 套题
- threallocal详解
- 邪恶改装:TPYBoard制作廉价WIFI干扰器
- 算法编程-不定时更新
- 【压缩感知OMP算法】OMP算法的Matlab版本
- linux终端清除命令,如何清除 Linux 中的终端?使用 clear 命令清除 Linux 终端
- php imagick 取得psd缩略图,php实现在新浪云中使用imagick生成缩略图并上传的方法...
- Linux下pgadmin4启动报错,在CentOS 7/Fedora 29系统上安装配置pgAdmin 4的方法
- 济安横断面怎么去水印_济安横断面设计软件
- 有关串口、USB接口串联小电阻的对话
- idea插件开发--组件--编程久坐提醒
- 【算法导论-34】红黑树、顺序统计树的Java实现
- 实时视频传输协议RTP