前言

1 懒人,工作中可以模拟真人操作,不用自己点击

2游戏人员  这是做模拟外挂的必备知识,不管手机还是电脑游戏,尤其副本

准备模块

代码如下:

实现了一个最简单的输入密码,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)

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

1
2
3
4
5
6
7
8
9
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模拟鼠标键盘操作的更多相关文章

  1. python模拟鼠标键盘操作 GhostMouse tinytask 调用外部脚本或程序 autopy右键另存为

    0.关键实现:程序窗口前置 python 通过js控制滚动条拉取全文 通过psutil获取pid窗口句柄,通过win32gui使程序窗口前置 通过pyauto实现右键菜单和另存为操作 1.参考 aut ...

  2. python模拟鼠标拖动操作的方法

    本文实例讲述了python模拟鼠标拖动操作的方法.分享给大家供大家参考.具体如下: pdf中的书签只有页码,准备把现有书签拖到一个目录中,然后添加自己页签.重复的拖动工作实在无趣,还是让程序帮我实现吧 ...

  3. 将CodedUI Test 放到控制台程序中,模拟鼠标键盘操作

    CodedUI Test是微软的自动化测试工具,在VS中非常好用.可以用来模拟鼠标点击,键盘输入.但执行的时候必须要用mstest调用,无法传入参数(当然可以写入config文件中,但每次修改十分麻烦 ...

  4. selenium webdriver从安装到使用(python语言),显示等待和隐性等待用法,切换窗口或者frame,弹框处理,下拉菜单处理,模拟鼠标键盘操作等

    selenium的用法 selenium2.0主要包含selenium IDE 和selenium webDriver,IDE有点类似QTP和LoadRunner的录制功能,就是firefox浏览器的 ...

  5. selenium模拟鼠标键盘操作

    简单操作: 1.点击(鼠标左键)页面按钮:click() 2.清空输入框:clear() 3.输入字符串:send_keys()submit提交表单: 1.一般情况可以点击搜索按钮来搜索 2.也可以用 ...

  6. selenium webdriver(4)---模拟鼠标键盘操作

    webdriver提供Actions来模拟鼠标悬浮.拖拽和键盘输入等操作,详细代码见org.openqa.selenium.interactions.Actions.本文通过几个实例来说明Action ...

  7. python selenium鼠标键盘操作(ActionChains)

    用selenium做自动化,有时候会遇到需要模拟鼠标操作才能进行的情况,比如单击.双击.点击鼠标右键.拖拽等等.而selenium给我们提供了一个类来处理这类事件--ActionChains sele ...

  8. Java+selenium之WebDriver模拟鼠标键盘操作(六)

    org.openqa.selenium.interactions.Actions类,主要定义了一些模拟用户的鼠标mouse,键盘keyboard操作.对于这些操作,使用 perform()方法进行执行 ...

  9. selenium webdriver模拟鼠标键盘操作

    在测试使用Selenium webdriver测试WEB系统的时候,用到了模拟鼠标.键盘的一些输入操作. 1.鼠标的左键点击.双击.拖拽.右键点击等: 2.键盘的回车.回退.空格.ctrl.alt.s ...

  10. selenuim2模拟鼠标键盘操作

    有时候有些元素不便点击或者做其他的操作,这个时候可以借助selenium提供的Actions类,它可以模拟鼠标和键盘的一些操作,比如点击鼠标右键,左键,移动鼠标等操作.对于这些操作,使用perform ...

随机推荐

  1. vue el-tree 单选实现

    <el-tree :props="props" ref="treeList" :load="loadNode" check-stric ...

  2. outlook2013 关闭后不能接收邮件了解决方法

    本人装的是2013版的outlook亲测有用,其他版本的本人没试过. 下载KeepOutlookRunning.rar 链接:https://pan.baidu.com/s/1hcNorKDLbpzV ...

  3. 模拟实现call,apply,bind方法,以及三者区别

    // 模拟实现call方法 Function.prototype.call2 = function (context) { var context = context || window; conte ...

  4. spring为什么默认单例模式

    单例bean的优势 由于不会每次都新创建新对象所以有一下几个性能上的优势. 1.减少了新生成实例的消耗 新生成实例消耗包括两方面,第一,spring会通过反射或者cglib来生成bean实例这都是耗性 ...

  5. C数列或者C向量以及C矩阵

    #include <stdlib.h> #include <stdio.h> #define TP double #define UI unsigned short int # ...

  6. 2html5

    多媒体标签 <audio> <audio src='../audio/bxb.mp3' controls="controls" autoplay="au ...

  7. Web _Servlet(url-pattern)的配置与优先级

    url-pattern的配置方式有三种: 1.完全路径匹配:以  '/'  开始 例: /ServletDemo1  , /aaa/ServletDemo2 , /aa/bb/ServletDemo3 ...

  8. HTML Cookie

    目录 Cookie是什么 Cookie的属性 Cookie的作用域 Domain 属性 Path 属性 SameSite 属性 Cookie密码验证小案例 效果展示 代码 Cookie是什么 HTTP ...

  9. 拉勾java核心类库--String类

    String类 @author :magiclx 摘要:String类是用final进行修饰的,关于字符串的一个类,其中包含很多个方法 关键词:String,常量池,正则表达式,数组转化 正文: 参考 ...

  10. 代码片断:GDI绘制带一定角度的椭圆

    //先将DXF文件中的Ellipse 解析到elpList 中 foreach (Ellipse ellipse in elpList) { //定义一个矩形 RectangleF rect = ne ...