(程序员必备技能)基于Python的鼠标与键盘控制实战扩展与源码
(程序员必备技能)基于Python的鼠标与键盘控制实战与源码
文章目录
- (程序员必备技能)基于Python的鼠标与键盘控制实战与源码
- 一、序言
- 二、配置环境
- 1.下载pyautogui包
- 三、鼠标控制
- 1、获取鼠标位置函数以及测试源码
- 2、控制鼠标左击/右击/双击函数以及测试源码
- 3、控制鼠标移动/拖动
- 3、控制鼠标滚轮滚动
- 四、键盘控制
- 1、控制输出单个键
- 2、控制键盘输出快捷键(同时输出多个键)
- 3、控制键盘长按某个键
- 4、控制键盘输出一段话
- 5、停顿一段时间
- 五、结语
- 1、电脑的眼睛
- a.调用电脑相机
- b.调用手机相机
- c.获取当前电脑屏幕
- 2、电脑的大脑
- a.图像匹配
- b.视觉Al
一、序言
使用python控制按键无疑非常重要的技能,特别是结合机器视觉更是能发挥出超强的实力!
二、配置环境
1.下载pyautogui包
pip install pyautogui -i https://pypi.tuna.tsinghua.edu.cn/simple/
注:如果有可能,可以在pycharm中进行以下Python控制的鼠标和键盘的测试与学习。
Pycharm与Anaconda3的下载与配置博客可以参考如下博客:Anaconda3和pycharm的下载指南
三、鼠标控制
注:由于这部分功能我不能通过截屏来显著表现出来,在程序运行结果就不截屏了,保持界面整洁
1、获取鼠标位置函数以及测试源码
#获取鼠标位置
import pyautogui as pg #没别的作用就单纯换个名字
try:while True:x,y=pg.position() #核心函数pg.position()print(str(x)+" "+str(y)) #输出鼠标的x,yexcept KeyboardInterrupt:print("\n")
程序功能:
- 实时输出当前鼠标位置
核心函数:
函数名 | 功能 |
---|---|
pyautogui .position() | 返回当前鼠标的x,y坐标。 |
核心代码:
- 换名:第2行 import pyautogui as pg
- 输出鼠标位置:第5~6行
x,y=pg.position() #核心函数pg.position()
print(str(x)+" "+str(y)) #输出鼠标的x,y
2、控制鼠标左击/右击/双击函数以及测试源码
# 获取鼠标位置
import pyautogui as pgtry:while True:x, y = pg.position()print(str(x) + " " + str(y)) #输出鼠标位置if 1746 < x < 1800 and 2 < y < 33:pg.click()#左键单击if 1200 < x < 1270 and 600 < y < 620:pg.click(button='right')#右键单击if 1646 < x < 1700 and 2 < y < 33:pg.doubleClick()#左键双击except KeyboardInterrupt:print("\n")
a.程序功能
在输出鼠标位置的基础,分别设置了三个区域,当鼠标达到这三个区域时候,进行左键单击、右键单击,左键双击。
b.核心函数
函数名 | 功能 |
---|---|
pyautogui.click() | 鼠标左键单击 |
pyautogui.click(button=‘right’) | 鼠标右键单击 |
pyautogui.doubleClick() | 鼠标左键双击 |
c.核心代码
1、触发某事件就控制鼠标点击:第9~14行
注:click()函数默认:button=‘left’
3、控制鼠标移动/拖动
# 3、控制鼠标移动/拖动demo
import pyautogui as pgtry:while True:x, y = pg.position()print(str(x) + " " + str(y)) #输出鼠标位置#实现鼠标绝对移动功能if 1011 < x < 1357 and 320 < y < 527:pg.moveTo(1750, 20, 2)#花2s从当前位置移动到(1750,20)pg.click() # 左键单击#实现鼠标相对移动功能if 600 < x < 1000 and 305 < y < 425:pg.move(0, 200) # 基于当前位置瞬间向下移动200像素#实现鼠标拖动功能if 1142<x<1391 and y<25:pg.dragTo(300, 400, 2, button='left') #花2s从当前位置拖到(300,400)except KeyboardInterrupt:print("\n")
a.程序功能
在输出鼠标位置的基础,分别设置了三个区域,当鼠标达到这三个区域时候,分别进行绝对移动,相对移动,鼠标拖动三个运行演示。
注:在运行代码全,将Pycharm全屏演示效果更好哦
b.核心函数
函数名 | 功能 |
---|---|
pyautogui.moveTo() | 鼠标绝对移动 |
pyautogui.move() | 鼠标相对移动 |
pyautogui.dragTo() | 鼠标绝对拖动 |
c.核心代码
1、触发某事件就控制鼠标移动/拖动:第9~19行
注:click()函数默认:button=‘left’
3、控制鼠标滚轮滚动
import pyautogui as pg
# 执行鼠标滚轮的滚动。垂直滚动还是水平滚动取决于底层操作系统。
pg.scroll(100) # scroll up 50 "clicks"
注:是的就两行,如果你是放在上面中使用,应该算只要一行就可以实现了。
四、键盘控制
1、控制输出单个键
import pyautogui as pg
pg.press('q')
核心函数:
函数名 | 功能 |
---|---|
pyautogui.press() | 摁键 |
注:pyautogui.press(‘enter’)代表按下回车 | |
注:pg.press(‘left’)#左移 其中,left,down,up,right是代表键盘移动键 |
2、控制键盘输出快捷键(同时输出多个键)
功能:复制当前界面内容并粘贴
import pyautogui as pgpg.hotkey('ctrl','a')
pg.hotkey('ctrl','c')
pg.click()
pg.hotkey('ctrl','v')
核心函数:
函数名 | 功能 |
---|---|
pyautogui.hotkey() | 支持同时摁多个键 |
3、控制键盘长按某个键
功能:复制当前界面内容并粘贴
import pyautogui as pgpg.keyDown('ctrl')#摁定ctrl
pg.press('a')
pg.press('c')
pg.click()
pg.press('v')
pg.keyUp('ctrl')
#程序描述:相当于先摁住ctrl,然后分别摁‘a’,'c','v',然后再松开‘ctrl’
核心函数:
函数名 | 功能 |
---|---|
pyautogui.keyDown() | 长按不动 |
pyautogui.keyUp() | 释放按键 |
4、控制键盘输出一段话
import pyautogui as pg
#pg.write()参数从左到右分别是内容,输入每个字符停顿时间
pg.write('hello world !', interval=0.3)
注:pg.write不支持中文,如果出现中文就会空格替代
注:不过可以用拼音,粗糙表示如:
import pyautogui as pg
pg.write('nihao1 shijie1!', interval=0.3)#你好世界
注:运行前记得打开拼音。
核心函数:
函数名 | 功能 |
---|---|
pyautogui.write() | 输出一段字符串 |
5、停顿一段时间
功能:复制当前界面内容并粘贴
import pyautogui as pg
pg.hotkey('ctrl','a')
pg.PAUSE=0.5#停顿0.5s
pg.hotkey('ctrl','c')
pg.PAUSE=0.5
pg.moveTo(1500,300)#绝对移动到1500,300
pg.click()#点击一下,确定窗口
pg.PAUSE=0.5
pg.hotkey('ctrl','v')
核心函数:
函数名 | 功能 |
---|---|
pg.PAUSE | 停顿: 单位s |
五、结语
通过以上学习,利用pyautogui,你已经学会了如何用python模拟人类的绝大部分键盘/鼠标行为。
到了这里或许,你会疑惑我该怎么确定,电脑应该在哪里控制鼠标做出什么操作,哪里控制键盘,应该输入什么。人是怎么做到这些的?视觉与大脑!
简单来说,就是图像输入与图像处理部分,加上这一部分学会的一双‘手’,电脑才可以大放异彩。
1、电脑的眼睛
在这里不得不提到opencv,它实现了图像处理和计算机视觉方面的很多通用算法。
如果有兴趣可以在这里学习:OpenCV4 C++ 快速入门视频30讲 - 系列合集
a.调用电脑相机
import cv2
cap=cv2.VideoCapture(0) #打开默认相机0,如果有外接摄像头,修改这个为1
if cap!=None:while True:ref,img=cap.read() cv2.imshow('video',img)if cv2.waitKey(1)==27:break
b.调用手机相机
可以看下面这个博客
使用手机摄像头做网络ip摄像头用opencv中打开
c.获取当前电脑屏幕
可以看下面这个博客
(必备技能)使用Python实现屏幕截图
2、电脑的大脑
a.图像匹配
有兴趣的检索一下:aircv
b.视觉Al
有兴趣的检索一下:yolo
下面这个博客可以参考一下
yolov5无从下手?一篇就够,2021年全部基于最新配置的yolo入门升级路线
结束。
(程序员必备技能)基于Python的鼠标与键盘控制实战扩展与源码相关推荐
- 丁威: 优秀程序员必备技能之如何高效阅读源码(二更)
@[toc](丁威: 优秀程序员必备技能之如何高效阅读源码(二更)) 消息中间件 我能熟练使用这个框架/软件/技术就行了, 为什么要看源码?" "平时不用看源码, 看源码太费时间, ...
- python程序员专用壁纸_程序员炫技必备:用Python生成马赛克画!(文末附源码)...
原标题:程序员炫技必备:用Python生成马赛克画!(文末附源码) 源 | Python与数据分析文 | 强哥 大家知道马赛克画是什么吗?不是动作片里的马赛克哦~~ 马赛克画是一张由小图拼成的大图,本 ...
- 程序员必备技能之Markdown
Markdown介绍 Markdown是一种纯文本格式的标记语言,比HTML更简单,通过一些简单的语法标记,就可以让文本简洁好看. Markdown已经是程序员一项必备技能了,代码块.流程图.序列图. ...
- Java如何接手别人项目_程序员必备技能——怎样快速接手一个项目
作为一个程序员,我们很少能从头到尾参与一个新项目的开发.如果你经常开发的是新项目,那你真是太幸福了. 更多的情况是半路进入一个项目组进行开发,或者是有其他同事离职了,之前由他维护的系统转交给你维护. ...
- 基于python食品安全溯源管理系统django框架计算机毕业设计源码+系统+数据库+lw文档+调试部署
基于python食品安全溯源管理系统django框架计算机毕业设计源码+系统+数据库+lw文档+调试部署 基于python食品安全溯源管理系统django框架计算机毕业设计源码+系统+数据库+lw文档 ...
- 基于python及图像识别的围棋棋盘棋子识别4——源码及使用说明
最近在做一个围棋棋盘棋子识别项目,这是该项目第四篇,系列文章如下: 1.基于python及图像识别的围棋棋盘棋子识别1--定位棋盘位置 2.基于python及图像识别的围棋棋盘棋子识别2--定位棋子位 ...
- BAT程序员必备技能调研,你中了几招?
程序员想进入腾讯.华为,必备的技能都有哪些? 至少你需要有分析问题的能力 .设计解决方案的能力 .编码实施的能力 .排除故障的能力.以及扎实的数学基础. 不过,程序员能力强弱,最后拼的是数学! 为什么 ...
- 数据时代程序员必备技能:数据可视化
说到数据可视化,大家可谓耳熟能详,设计师.数据分析师.数据科学家等,都用各种方式各种途径做着数据可视化的工作......实际上,我们每一个人,天生具有可视化思维,甚至经常性地做一些可视化操作. 比如, ...
- Java程序员必备技能
学习Java半年了,我觉得一个Java程序员应该必备一下技能 1.基本语法 static,final,volatile,transient,public,protected,private,synch ...
最新文章
- IIS 7 应用程序池自动回收关闭的解决方案
- java 核桃的数量,[Java教程]【蓝桥杯】历届试题 核桃的数量
- 由铁路订票系统联想到的
- PWM 发生器模块设计
- linux如何得到本机地址,Linux下如何得到本机所有IP地址及MAC地址
- Spark下的word2vec模型训练
- 作为一个软件开发公司如何让自己的技术落地应用产生价值呢?
- java中的与或运算
- 数据库阻塞---讲解设计应用程序时避免阻塞的八个准则
- easyui学习笔记5—panel加载其他的页面
- java实现凯撒密码_Java实现进阶版凯撒密码
- 图形识别和简单的颜色识别
- win7万能声卡驱动_我把一台PC的操作系统从win7换成了win10,它真的很棒!
- Opencv -- 18图像像素类型转换与归一化
- Python pycharm一个文件夹如何变成一个model
- ASP.NET MVC 音乐商店 - 10. 完成导航和站点的设计
- SpringBoot微信小程序商城源码(前台+后台)
- 图像修复 python_Python OpenCV|cv2.inpaint()函数,图像修复
- java基础笔记07-枚举、异常
- 手机怎么批量克隆剪同款视频