在某些情况下,如果我们需要进行自动化操作的应用没有提供相应的接口,我们无法直接通过Python来调用API实现自动化。这种情况下,Python也不是完全没有办法的,我们可以采用模拟键盘和鼠标的方式实现自动化。

Python中模拟键盘和鼠标最著名的模块是:pymouse和pykeyboard。一次安装两个模块比较麻烦,而有一个库整合了这两个模块,而且能支持跨平台操作,这个库叫PyUserInput,通过安装PyUserInput就可以直接得到pymouse和pykeyboard。

1.准备

开始之前,你要确保Python和pip已经成功安装在电脑上噢,如果没有,请访问这篇文章:超详细Python安装指南进行安装。如果你用Python的目的是数据分析,可以直接安装Anaconda:Python数据分析与挖掘好帮手—Anaconda

Windows环境下打开Cmd(开始—运行—CMD),苹果系统环境下请打开Terminal(command+空格输入Terminal),准备开始输入命令安装依赖。

当然,我更推荐大家用VSCode编辑器,把本文代码Copy下来,在编辑器下方的终端运行命令安装依赖模块,多舒服的一件事啊:Python 编程的最好搭档—VSCode 详细指南。

在终端输入以下命令安装我们所需要的依赖模块:

PyUserInput 在不同系统下的安装需要使用不同的依赖:

Linux - Xlib (python-xlib)

Mac - Quartz, AppKit

Windows - pywin32, pyHook

在终端输入以下命令安装我们所需要的依赖模块:

pip install PyUserInput

看到 Successfully installed xxx 则说明安装成功。Windows系统下如果出现如以下的红色字体提示则需要安装pyHook:

No matching distribution found for pyHook (from PyUserInput)

pyHook安装比较麻烦,安装成功或者非Windows系统的同学可以跳过下面的讲解:

1.安装pyHook需要前往

https://www.lfd.uci.edu/~gohlke/pythonlibs/#pyhook

找到你的Python版本对应的pyHook安装包,如我的是Python 3.6,系统是64位,则选择红框版本

2.输入以下命令安装该whl文件:

pip install pyHook-1.5.1-cp36-cp36m-win_amd64.whl

文件需要在输入命令的当前文件夹下。

3.出现Successfully installed pyHook-1.5.1则说明安装成功。

如果出现缺少pywin32依赖,或者pywin32无法正常使用,请前往:https://github.com/mhammond/pywin32/releases

下载对应版本的pywin32安装包,这里的安装包是exe程序,直接双击安装即可。

如果安装pywin32的时候出现这样的错误(借他人图):

这是因为你的Python没有被写入到注册表,需要将注册表写入Python,在Python实用宝典公众号后台回复:注册表或阅读原文 获得一键写入代码,用Python运行该代码就能成功注册。

注册完毕后就可以正常安装pywin32了,然后再重新安装 PyUserInput 即可。macOS和Linux在安装的时候应该不会遇到太大问题,如果有遇到问题可以先搜索一下,网上解决方案都很全,或者在本文下方留言求解。

2.基本使用

pymouse模块相对简单,你只需要记以下几个函数即可满足基本的使用需求,如

1.鼠标移动:

中键滚动:

2.鼠标点击:

鼠标拖拽:

3.获得当前屏幕大小:

4.获得鼠标当前位置:

只要记住以上4个方法,pymouse模块你就掌握了。接下来是比较复杂的pykeyboard模块:

1.键入字符串

2.按下按键与释放按键

3.特殊按键的输入:

3.小练习

微信的收藏功能相当好用,我收藏了几百个链接和推送,但是微信官方却没有提供批量删除的功能。。这么明显的痛点都没有修复,也许这就是微信的“任性”吧,优秀。

没事,有了Python,我们完全可以自己干。开始之前,需要下载一个叫看鼠标的软件,查找微信中某些组件所对应的当前屏幕的坐标,软件下载:https://pythondict.com/go/?url=http://www.cadgj.com/wp-content/uploads/2013/07/mousexy.exe

比如红点处位置为(574, 202). 所以为了实现批量删除,我们只需要从这个位置开始,右键删除,然后滚动相同宽度,重复这个操作即可。

为了避免文章篇幅过长,这里留给大家做练习,我们在下篇推送中将详细解析批量删除收藏链接的做法,敬请期待。

如果你喜欢今天的Python 教程,请持续关注Python实用宝典,如果对你有帮助,麻烦在下面点一个赞/在看

,有任何问题都可以在下方留言,我们会耐心解答的!

点击下方阅读原文可以获取所有代码和链接哦!

Python实用宝典 (pythondict.com)

不只是一个宝典

欢迎关注公众号:Python实用宝典

python模拟键盘操作_Python 模拟键盘鼠标操作详细教程相关推荐

  1. python 微信红包群_Python自动抢红包,超详细教程,再也不会错过微信红包了!...

    目录: 0 引言 1 环境 2 需求分析 3 前置准备 4 抢红包流程回顾 5 代码梳理 6 后记 0 引言 提到抢红包,就不得不提Xposed框架,它简直是个抢红包的神器,但使用Xposed框架有一 ...

  2. python微信抢红包神器_Python自动抢红包,超详细教程,再也不会错过微信红包了...

    0 引言 提到抢红包,就不得不提Xposed框架,它简直是个抢红包的神器,但使用Xposed框架有一个前提条件:手机需要root,对于苹果手机的话就需要越狱了.现在的手机想要root或越狱并不容易,同 ...

  3. python修改yaml文件_Python读取yaml文件的详细教程

    yaml简介 1.yaml [ˈjæməl]: Yet Another Markup Language :另一种标记语言.yaml 是专门用来写配置文件的语言,非常简洁和强大,之前用ini也能写配置文 ...

  4. python 控制桌面程序,Python自动化 gui 桌面应用测试,鼠标操作

    基于坐标和图像的设计哲学 pyautogui 并不需要去解析各平台的控件结构,他的元素定位都是基于坐标的.所以不论你是通过手工截图测量,还是通过自动化工具获取,只要你能拿到坐标,你就能进行元素操作. ...

  5. python Flask框架如何请求及返回数据——flask详细教程

    python Flask框架如何请求及返回数据--flask详细教程 文章目录: 1 Flask介绍 1.1 Flask简单介绍 1.2 Flask相关资料信息 2 Flask快速入门 2.1 Fla ...

  6. python模拟鼠标点击和键盘输入的操作_Python模拟鼠标点击及键盘输入(PyUserInput)...

    一.背景 有时可以通过程序来监控键盘或鼠标行为来触发鼠标的点击或者键盘的输入,类似于按键精灵,而Python是门简洁易实现的语言,同时PyUserInput库简单封装了底层的调用. 整篇文章以Wind ...

  7. python如何模拟键盘输入_python 模拟键盘输入

    python 模拟键盘输入 一.PyUserInput安装 python3.5的PyMouse和PyKeyboard模块都集成到了PyUserInput模块中.在python3.5中,直接安装PyUs ...

  8. python3模拟键盘输入_python 模拟键盘输入

    一.PyUserInput安装 python3.5的PyMouse和PyKeyboard模块都集成到了PyUserInput模块中.在python3.5中,直接安装PyUserInput模块即可 Py ...

  9. python键盘控制_python实现键盘控制鼠标移动

    玩QQ桌球游戏时,有时候用鼠标控制鼠标指针的微小移动比较费劲儿,所以想写个程序,可以用键盘的上下左右键来控制鼠标的移动,每次只移动一个像素. 本脚本依赖pywin32.pyHook和pymouse这两 ...

  10. python支持什么操作方式_python模拟点击常用的操作方法有哪些?

    我们在模拟点击上已经准备好的使用的工具库,以及学了一些简单的代码操作体验了重复的循环语句.有些小伙伴已经迫不及待想要用python模拟点击进行一些实用的操作,类似鼠标的自动点击上.这里小编想说先不着急 ...

最新文章

  1. 站在你身边的每个人都有可能改变世界,阿里云异构计算加速人工智能
  2. 条码扫描枪----针对MS3391扫码器的工作原理
  3. Google发布Android Studio 1.0
  4. 如何设置使windows(dos)命令中目录和文件可以自动完成和补齐
  5. Qt Creator指定项目属性
  6. 社交网站将推动手游发展
  7. .NET Core中使用Dapper操作Oracle存储过程最佳实践
  8. python面向对象实现简易银行管理员页面系统【导入自定义模块】
  9. Ubuntu开发环境搭建
  10. Django之路第四篇:Models
  11. Tkinter用户注册后密码通过MD5加密写入文本文件
  12. 维修电工技师技能实训考核装置QY-W05
  13. 如何看oracle 删除完全,怎么查看以前Oracle卸载干净没?
  14. java过滤敏感词汇
  15. Python黑马头条推荐系统第五天 头条排序模型进阶-神经网络
  16. CloudComparePCL Ear Clipping三角化算法
  17. 想做自媒体还是要趁早,充分掌握平台规则,也能轻松上手
  18. 我的梦想,我的飞翔! 南航天合2013校园招聘火热启动
  19. 推荐一些2021年整理27套微信小程序的毕业设计、毕设参考作品案例
  20. 全开源微信现场大屏幕小程序源码V1.7.6

热门文章

  1. mysql 备份还原策略_Mysql备份恢复
  2. JSON转Excel
  3. 可变数据(VDP)软件 数码印刷和传统印刷的区别
  4. 编程制作动态壁纸的思路_Android自定义动态壁纸开发详解
  5. 怎么进入机顶盒linux系统,如何在机顶盒中刷入原生的Debian系统
  6. python aiml_Python:用aiml构建英语聊天机器人
  7. 【第36期】游戏策划:新手入行的切入点在哪?
  8. sm3 算法java_java sm3加密算法
  9. Kettle下载Redisinput插件查询Redis数据
  10. Brother DCP-1608 Printer共享打印机防坑指南