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

yipeiwu_com6年前Python基础

所有代码都是网上百度出来的,通过个人实践找到适合自己的。

采用的python 库是 pymouse、pykeyboard

安装时直接pip安装的,pip install PyUserInput

安装不成功的可以参照http://www.lfd.uci.edu/~gohlke/pythonlibs/这个地址,内容很全

实现了一个最简单的输入密码,enter进入的登录过程

如果想遍历,可以使用itertools 包,很有用,具体用法这里不介绍了。

· 鼠标点击

有m.click(x, y, button, n)  -- 点击,想x,y坐标,button:-1表示左键,-2表示右键,n:默认1次,2双击

m.move(x, y) -- 鼠标移动

m.screen_size() -- 获取屏幕尺寸

· 键盘操作

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

k.press_keys([k.alt_key, 'a']) --组合按键,试验不成功

win10 系统没反应

关于监听键盘操作窗口:

import pyHook
import pythoncom

需要用到这两个模块,安装方法可以网上百度,我下载的是pyHook-1.5.1-cp27-cp27m-win_amd64.whl,放到python安装目录Scripts下,执行pip install pyHook-1.5.1-cp27-cp27m-win_amd64.whl即可

其中ctypes比较复杂,会单独写一篇

运行结果如下,可以把输入的内容保存到一个文档中(例えば:txt/excel)

这是两张图片拼出来的,拼接处有些明显,具体实现如下

import Image
image1 = Image.open('C:\\Pictures\\csdn\\1.png'.decode('utf8').encode('gbk')) #如果是中文路径
image1 = Image.open('C:\\Pictures\\csdn\\2.png'.decode('utf8').encode('gbk')) 
w1,h1 = image1.size
w2,h2 = image2.size
newIm= Image.new('RGB', (max(w1,w2), h1+h2+1), 'white')
newIm.paste(image1,(0,0))
newIm.paste(image2,(0,h1))
newIm.save('C:\\Pictures\\csdn\\Image.png','jpeg')

还是挺简单的。

关于鼠标的事件监听也尝试了,不过效果不太好,希望可以研究下怎么实现彩色线条模拟鼠标轨迹的代码~

总结

以上所述是小编给大家介绍的python模拟鼠标点击和键盘输入的操作,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!

相关文章

Python的时间模块datetime详解

datetime模块用于是date和time模块的合集,datetime有两个常量,MAXYEAR和MINYEAR,分别是9999和1. datetime模块定义了5个类,分别是 1.d...

python如何读写csv数据

本文实例为大家分享了python读写csv数据的具体代码,供大家参考,具体内容如下 案例:        通过股票网站,我们...

解决pyinstaller打包exe文件出现命令窗口一闪而过的问题

解决pyinstaller打包exe文件出现命令窗口一闪而过的问题

用pyinstaller打包的exe文件打开时,命令窗口一闪而过,并且未出现GUI界面,也看不到错误信息,然后去网上搜相关的信息,最多的两种说法: 1.添加raw_input()或者os...

python在linux系统下获取系统内存使用情况的方法

本文实例讲述了python在linux系统下获取系统内存使用情况的方法。分享给大家供大家参考。具体如下: """ Simple module for getting amount o...

基于pandas将类别属性转化为数值属性的方法

基于pandas将类别属性转化为数值属性的方法

离散特征的编码分为两种情况: 1、离散特征的取值之间没有大小的意义,比如color:[red,blue],那么就使用one-hot编码 2、离散特征的取值有大小的意义,比如size:[...