失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > python实现键盘自动输入_人生苦短我用Python——模拟鼠标点击和键盘输入的操作...

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

时间:2024-04-14 16:48:43

相关推荐

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

通过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——模拟鼠标点击和键盘输入的操作...》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。