通过Python可以模拟鼠标点击和键盘输入的操作,进而可以实现一些比较有趣的功能,例如游戏挂机、自动发消息等。

本文以自动发消息为例,实现该功能,通过该代码可以自动往QQ、微信发送任意内容。首先考虑想要实现一个这样的功能应该有哪些步骤:

1、 我们需要知道需要自动发送什么东西

2、 因为是模拟键盘和鼠标的输入,因此我们需要知道鼠标和键盘正常的操作顺序,才能用Python来模拟这一过程。

一、准备工作:

需要安装pyHook库以及PyUserInput库,pyHook库进入网站:https://www.lfd.uci.edu/~gohlke/pythonlibs/,找到Index by date中的pyHook,点进去之后页面会跳到这里:

第一行代表Python37,win32位,第二行代表Python37,win64位,以此类推。那么我们如何看Python版本呢,打开cmd,输入Python即可。之后利用pip进行安装即可,代码如下:

pip install C:\Users\778\Desktop\新建文件夹\pyHook-1.5.1-cp37-cp37m-win_amd64.whl

之后就可以安装PyUserInput库了,代码:

pip install PyUserInput

二、代码实现:

首先我们需要导入pykeyboard以及pymouse库,并建立鼠标和键盘对象:

from pykeyboard import *

from pymouse import *

m = PyMouse() #建立鼠标对象

k = PyKeyboard() #建立键盘对象

接下来我们如果想自动发消息我们需要知道:需要输入的内容以及鼠标点击的位置,即输入框的位置和发送的位置,这样,我们通过点击输入框和发送,即可实现发送消息。通过m.position()可以知道当前鼠标的位置,当然我们还需要点时间,使得我们能够把鼠标移动到需要的位置:

import time

time.sleep(2)

location1=m.position()

time.sleep(4)

location2=m.position()

这样我们就可以得到输入框和发送的位置,这样我们就可以得到输入框和发送的位置,接下来就是如何把输入的内容打到输入框中呢,别着急,通过k.type_string(‘I love u’)就可以把括号内的输入进去了,我们来试试:

from pykeyboard import *

from pymouse import *

import time

m = PyMouse() #建立鼠标对象

k = PyKeyboard() #建立键盘对象

time.sleep(2)

location1=m.position()

time.sleep(4)

location2=m.position()

m.click(location1[0],location1[1])

k.type_string('I love you')

m.click(location2[0],location2[1])

看看效果:

好吧,看来一个I love you还是不能掳掠女神的芳心,那怎么办呢,可以依靠一个循环来做。

from pykeyboard import *

from pymouse import *

import time

m = PyMouse() #建立鼠标对象

k = PyKeyboard() #建立键盘对象

time.sleep(2)

location1=m.position()

time.sleep(4)

location2=m.position()

for each in range(100):

m.click(location1[0],location1[1])

k.type_string('I love you')

m.click(location2[0],location2[1])

一起来看看效果吧:

好吧,此刻你已经掳掠了女神的芳心,这时候我们发现,type_string方法只能输入英文,中文输入不了,这可怎么办呢,女神还在等我表白呢,别着急,pyperclip库可以帮我们来完成这一过程,思想就是我们复制我们需要发送的内容,再模拟键盘按下ctrl+v就可以了:

from pykeyboard import *

from pymouse import *

import time

import pyperclip

m = PyMouse() #建立鼠标对象

k = PyKeyboard() #建立键盘对象

time.sleep(2)

location1=m.position()

time.sleep(4)

location2=m.position()

for each in range(10):

pyperclip.copy('我爱你')

#以下语句模拟键盘点击ctrl+v

k.press_key(k.control_key)

k.tap_key('v')

k.release_key(k.control_key)

m.click(location2[0],location2[1])

恭喜你们,当然一直输入我喜欢你未免有些单调了,我想夸夸他咋办呢,别着急,我们先查查百度有什么夸女生的词汇,查找之后发现有:聪明伶俐 .蕙来质兰心,贤良淑德,秀外慧中,天资聪慧,伶俐乖巧,花容月貌 袅袅娉娉 秀色可餐度 国色天香 皓齿蛾眉 皓齿明眸 绝色问佳人 天生丽质 我见犹怜 小家碧玉 远山芙蓉 章台杨柳 朱唇皓答齿 齿若编贝 冰雪自聪明 剔透玲珑 出淤泥而不染,香风朴面而不沾.可亲.富有朝气.漂亮,可爱,美丽,动人,天真,浪百漫,快乐,灵巧,热度情,甜美,典雅,优雅,调皮.沉鱼落雁 闭月羞花 倾国倾城 美如冠玉 眉目如画 出水芙蓉 如花问似玉 国色天香 眉清目秀 亭亭玉立 风度翩翩 神情明答秀

哇,好多啊,可是我们不能一股脑的直接输进去吧,我希望能够一个一个词语输,怎么办呢,可以把这些字符串转化为列表形式,按照字符或者空格进行对字符串进行分割,然后一个一个打出来就好了:

from pykeyboard import *

from pymouse import *

import time

import pyperclip

str1="""聪明伶俐 .蕙来质兰心,贤良淑德,秀外慧中,天资聪慧,伶俐乖巧,花容月貌 袅袅娉娉 秀色可餐度

国色天香 皓齿蛾眉 皓齿明眸 绝色问佳人 天生丽质 我见犹怜 小家碧玉 远山芙蓉 章台杨柳 朱唇皓答齿

齿若编贝 冰雪自聪明 剔透玲珑 出淤泥而不染,香风朴面而不沾.可亲.富有朝气.漂亮,可爱,美丽,动人,

天真,浪百漫,快乐,灵巧,热度情,甜美,典雅,优雅,调皮.沉鱼落雁 闭月羞花 倾国倾城 美如冠玉

眉目如画 出水芙蓉 如花问似玉 国色天香 眉清目秀 亭亭玉立 风度翩翩 神情明答秀 """

number=0

strresult=""

for each in str1:

if str1[number] in '!"#$%&()*+,,-./:;<=>?@[\\]^_‘{|}~':

strresult=strresult+" "

else:

strresult=strresult+str1[number]

number+=1

words=strresult.split()

pyperclip.copy("您真是")

m = PyMouse() #建立鼠标对象

k = PyKeyboard() #建立键盘对象

time.sleep(2)

location1=m.position()

time.sleep(4)

location2=m.position()

time.sleep(1)

m.click(location1[0],location1[1])

k.press_key(k.control_key)

k.tap_key('v')

k.release_key(k.control_key)

number=0

for i in range(len(words)):

time.sleep(0.5)

pyperclip.copy(words[number])

#以下语句模拟键盘点击ctrl+v

k.press_key(k.control_key)

k.tap_key('v')

k.release_key(k.control_key)

m.click(location2[0],location2[1])

number+=1

三、相关拓展

PyKeyboard的基本方法

k.type_string('abcdefg') --输入内容

k.press_key('a') --按a键

k.release_key('a') --松开a键

k.tap_key('a') --点击a键

k.tap_key('a', n=2, interval=5) --点击a键2次,每次间隔5秒

k.tap_key(k.function_keys[5]) --功能键F5

PyMouse的基本方法

1)drag(self, x, y)

把鼠标移动到x,y坐标处,是一个拖拽动作,不只是移动

2) move(self, x, y)

把鼠标移动到x,y

3)position(self)

得到鼠标的当前位置,并返回坐标x,y

4)press(self, x, y, button=1)

鼠标按下不松开x,y的坐标点,button表示左右键

5)release(self, x, y, button=1)

松开指定位置的鼠标

6)scroll(self, vertical=None, horizontal=None, depth=None)

生成最多三个维度的鼠标滚动事件:垂直、水平和深度(仅限于Mac)。这些参数的值可以是正数或负数(浮点数或整数)。请参阅以下内容:

Vertical: + Up, - Down

Horizontal: + Right, - Left

Depth: + Rise (out of display), - Dive (towards display)

滚动鼠标的滚轮,在三个方向上移动

7)click(self, x, y, button=1, n=1)

在给定的x,y上单击鼠标按钮n次。button定义为1=左,2=右,3=中间。

python实现键盘自动输入_人生苦短我用Python——模拟鼠标点击和键盘输入的操作...相关推荐

  1. python模拟鼠标键盘操作_人生苦短我用Python——模拟鼠标点击和键盘输入的操作...

    通过Python可以模拟鼠标点击和键盘输入的操作,进而可以实现一些比较有趣的功能,例如游戏挂机.自动发消息等. 本文以自动发消息为例,实现该功能,通过该代码可以自动往QQ.微信发送任意内容.首先考虑想 ...

  2. python模拟鼠标点击和键盘输入的操作_python模拟鼠标点击和键盘输入的操作

    所有代码都是网上百度出来的,通过个人实践找到适合自己的. 采用的python 库是 pymouse.pykeyboard 安装时直接pip安装的,pip install PyUserInput 安装不 ...

  3. python操作键盘输入中文_python模拟鼠标点击和键盘输入的操作

    所有代码都是网上百度出来的,通过个人实践找到适合自己的. 采用的python 库是 pymouse.pykeyboard 安装时直接pip安装的,pip install PyUserInput 安装不 ...

  4. python控制鼠标移动并点击_python模拟鼠标点击和键盘输入的操作

    所有代码都是网上百度出来的,通过个人实践找到适合自己的. 采用的python 库是pymouse.pykeyboard 安装时直接pip安装的,pip install PyUserInput 安装不成 ...

  5. python模拟键盘打字_python模拟鼠标点击和键盘输入的操作

    所有代码都是网上百度出来的,通过个人实践找到适合自己的. 采用的python 库是 pymouse.pykeyboard 安装时直接pip安装的,pip install PyUserInput 实现了 ...

  6. C语言 在程序中打开网页,模拟鼠标点击、键盘输入

    C语言 在程序中打开网页,模拟鼠标点击.键盘输入 一.简述         记--使用C语言 打开指定网页,并模拟鼠标点击.键盘输入.实现半自动填写账号密码,并登录网站(当然现在的大部分网站都有验证码 ...

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

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

  8. 用python的pyautogui模块模拟鼠标点击和键盘输入

    import pyautogui import numpy as np import time#屏幕坐标与定位 width, height = pyautogui.size()#获取屏幕宽高 loca ...

  9. python学法用法 自动刷分_微信跳一跳python辅助工具刷分教程详解

    随着身边不少小伙伴都加入了微信跳一跳挑战,朋友圈最近都被刷爆了,为了刷分,很多小伙伴都开始开挂了,Github大神wangshub分享了一个针对该游戏的开源项目,那微信跳一跳python怎么刷分呢,下 ...

最新文章

  1. 关于移动端rem适配
  2. 《iOS 6高级开发手册(第4版)》——导读
  3. MS SQL入门基础:启动与关闭服务器
  4. jQuery .attr(checked)得undefined 问题解决
  5. springBoot修改代码不需要重启-热部署
  6. GreenSock (TweenMax) 动画案例(二)
  7. [CMake] 简单的样例工程
  8. Linux下svn的部署
  9. 面试官上来就问:能不能开发一个微信朋友圈、推特?我有点懵~
  10. python爬虫爬取网页图片_Python之多线程爬虫抓取网页图片
  11. android 设备管理和凭证,简述设备管理的涵义
  12. 看完这篇文章,小白也能快速安装谷歌服务框架(GApps)!
  13. css 实现三个 div 等分排在一行
  14. 4418linux内核源码,4418开发板Uboot内核文件系统编译脚本分析
  15. 分库分表之MyCat应用
  16. Dockerfile的编写
  17. 易语言程序假死优化_易语言假死无响应采用处理事件解决办法
  18. C#开发浏览器谷歌内核
  19. 永宏B1主机2个常见问题
  20. Laravel 全汉字首字母分类排序

热门文章

  1. 数据分析常用的Excel函数合集
  2. Tomcat 服务器配置实现 IP访问限制
  3. 【 vue 】局部样式与全局样式
  4. 关于travis scott的网名_小仙女可爱单纯的网名
  5. android自定义网络请求框架,安卓快速开发框架(十九)XBaseAndroid Http网络请求
  6. MusicXML 3.0 (2) - 调号
  7. 前淘宝工程师:12306几乎是一个奇迹
  8. 马王堆汉墓帛书‧老子——乙本释文(道经)
  9. vb.net 生成随机数
  10. 2016中国云计算大会