(程序员必备技能)基于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坐标。

核心代码:

  1. 换名:第2行 import pyautogui as pg
  2. 输出鼠标位置:第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的鼠标与键盘控制实战扩展与源码相关推荐

  1. 丁威: 优秀程序员必备技能之如何高效阅读源码(二更)

    @[toc](丁威: 优秀程序员必备技能之如何高效阅读源码(二更)) 消息中间件 我能熟练使用这个框架/软件/技术就行了, 为什么要看源码?" "平时不用看源码, 看源码太费时间, ...

  2. python程序员专用壁纸_程序员炫技必备:用Python生成马赛克画!(文末附源码)...

    原标题:程序员炫技必备:用Python生成马赛克画!(文末附源码) 源 | Python与数据分析文 | 强哥 大家知道马赛克画是什么吗?不是动作片里的马赛克哦~~ 马赛克画是一张由小图拼成的大图,本 ...

  3. 程序员必备技能之Markdown

    Markdown介绍 Markdown是一种纯文本格式的标记语言,比HTML更简单,通过一些简单的语法标记,就可以让文本简洁好看. Markdown已经是程序员一项必备技能了,代码块.流程图.序列图. ...

  4. Java如何接手别人项目_程序员必备技能——怎样快速接手一个项目

    作为一个程序员,我们很少能从头到尾参与一个新项目的开发.如果你经常开发的是新项目,那你真是太幸福了. 更多的情况是半路进入一个项目组进行开发,或者是有其他同事离职了,之前由他维护的系统转交给你维护. ...

  5. 基于python食品安全溯源管理系统django框架计算机毕业设计源码+系统+数据库+lw文档+调试部署

    基于python食品安全溯源管理系统django框架计算机毕业设计源码+系统+数据库+lw文档+调试部署 基于python食品安全溯源管理系统django框架计算机毕业设计源码+系统+数据库+lw文档 ...

  6. 基于python及图像识别的围棋棋盘棋子识别4——源码及使用说明

    最近在做一个围棋棋盘棋子识别项目,这是该项目第四篇,系列文章如下: 1.基于python及图像识别的围棋棋盘棋子识别1--定位棋盘位置 2.基于python及图像识别的围棋棋盘棋子识别2--定位棋子位 ...

  7. BAT程序员必备技能调研,你中了几招?

    程序员想进入腾讯.华为,必备的技能都有哪些? 至少你需要有分析问题的能力 .设计解决方案的能力 .编码实施的能力 .排除故障的能力.以及扎实的数学基础. 不过,程序员能力强弱,最后拼的是数学! 为什么 ...

  8. 数据时代程序员必备技能:数据可视化

    说到数据可视化,大家可谓耳熟能详,设计师.数据分析师.数据科学家等,都用各种方式各种途径做着数据可视化的工作......实际上,我们每一个人,天生具有可视化思维,甚至经常性地做一些可视化操作. 比如, ...

  9. Java程序员必备技能

    学习Java半年了,我觉得一个Java程序员应该必备一下技能 1.基本语法 static,final,volatile,transient,public,protected,private,synch ...

最新文章

  1. IIS 7 应用程序池自动回收关闭的解决方案
  2. java 核桃的数量,[Java教程]【蓝桥杯】历届试题 核桃的数量
  3. 由铁路订票系统联想到的
  4. PWM 发生器模块设计
  5. linux如何得到本机地址,Linux下如何得到本机所有IP地址及MAC地址
  6. Spark下的word2vec模型训练
  7. 作为一个软件开发公司如何让自己的技术落地应用产生价值呢?
  8. java中的与或运算
  9. 数据库阻塞---讲解设计应用程序时避免阻塞的八个准则
  10. easyui学习笔记5—panel加载其他的页面
  11. java实现凯撒密码_Java实现进阶版凯撒密码
  12. 图形识别和简单的颜色识别
  13. win7万能声卡驱动_我把一台PC的操作系统从win7换成了win10,它真的很棒!
  14. Opencv -- 18图像像素类型转换与归一化
  15. Python pycharm一个文件夹如何变成一个model
  16. ASP.NET MVC 音乐商店 - 10. 完成导航和站点的设计
  17. SpringBoot微信小程序商城源码(前台+后台)
  18. 图像修复 python_Python OpenCV|cv2.inpaint()函数,图像修复
  19. java基础笔记07-枚举、异常
  20. 手机怎么批量克隆剪同款视频

热门文章

  1. 国内IT软件外包公司汇总(2023 最新版)!
  2. 客户旅程分析 Customer Journey Mapping
  3. JLINK仿真器用SWD模式下载/调试只需三根线
  4. 中药复方在治疗慢性盆腔炎上的应用
  5. 行业寒冬下,简历发了几千次已读不回,功能测试的出路在哪里?
  6. Photoshop教程|ps渐变如何使用?如何给图片制作出渐变效果?
  7. 消息系统(ActiveMQ)
  8. 类脑计算芯片作为基础前沿技术重大突破成果,荣登CCTV《新闻联播》
  9. 拍摄的风景视频中,如何快速有效地去除视频中的杂物?
  10. 分区丢失了数据怎么恢复