P-1.3.1 学习使用PyUserInput并用Python模拟鼠标的拖动
2018-01-08 15:26
2251 查看
在P-1.3中我成功地安装了PyUserInput模块现在我要学习如何使用它控制鼠标键盘
首先
当我疑惑为什么要用from xxx import xxx时一个知乎答主解答了我的疑惑
![](https://oscdn.geek-share.com/Uploads/Images/Content/201909/03/e38745683b6f551ac2c7409db6e3beaf)
真感谢你呀:>
![](https://oscdn.geek-share.com/Uploads/Images/Content/201909/03/5f8b40b72eb2f5faae0e46cea9c59254)
的确,
接下来建立一个鼠标和键盘的对象:
(ok,不用特别输入pymouse.PyMouse了)
And I’ve found out that I can replace an order with a “mark”, as follows:
Of course, I must note that:
Well, it doesn’t work anymore
anyway
快速学习新代码的方式之一是写一个小程序,程序如下:
其中import time库使用time.sleep(x)函数是因为我希望让程序暂停一小段时间
关于time.sleep:
1) Note that using the function “time.sleep(x)”means that you must wait after you use the “KeyboardInterrupt” (Ctrl+C in IDLE),during the sleeping period.
2) “让程序执行暂停指定的秒数,参数可以是浮点型以指定精确的时间,但是程序真正暂停的时间可能长于请求的时间也可能短于暂停的时间。”
pykeyboard库也是类似的用法。Mouse与Keyboard的具体指令可以参照网络或者在IDLE中用自动完成功能(TAB键)一个个取出来尝试。
下面写一个模拟鼠标拖动的小程序作为练习:
在这个小程序的基础上,可以做出一些有意思的拓展,如果再作出一些精简,可能非常实用
1/9日批注:
autopy3
//autopy是一个自动化操作的python库,可以模拟一些鼠标、键盘事件,还能对屏幕进行访问
Pillow
//Pillow是PIL的一个派生分支,但如今已经发展成为比PIL本身更具活力的图像处理库。
安装autopy3之前需要安装OpenGL和Libpng
===============================
OpenGL pip安装就可以了 我就不多说了 我用的IDE是pycharm直接用IDE安装的
Libpng的话安装稍微麻烦一点可以看下面这个帖子是MAC安装Libpng的例子!
点击打开链接
http://blog.csdn.net/u014017080/article/details/76116642
===============================
未经尝试,这是更简便的模拟拖动方法
引用自网络
首先
from pymouse import PyMouse from pykeyboard import PyKeyboard
当我疑惑为什么要用from xxx import xxx时一个知乎答主解答了我的疑惑
真感谢你呀:>
的确,
from random import randint之后可以直接使用randint指令而不用输入random.randint指令了。
接下来建立一个鼠标和键盘的对象:
m = PyMouse() k = PyKeyboard()
(ok,不用特别输入pymouse.PyMouse了)
And I’ve found out that I can replace an order with a “mark”, as follows:
>>> m=print >>> m('a') a >>> m=random >>> m.randint(1,2) 1 >>> m=random.randint >>> m(1,2) 2 >>> m=random.randint(1,2) >>> m 2 >>>
Of course, I must note that:
>>> print=random >>> print('Does it work?') Traceback (most recent call last): File "<pyshell#50>", line 1, in <module> print('Does it work?') TypeError: 'module' object is not callable >>>
Well, it doesn’t work anymore
anyway
快速学习新代码的方式之一是写一个小程序,程序如下:
from pymouse import PyMouse import time m = PyMouse() (x,y)=m.position()#获取当前坐标的位置 time.sleep(1) m.move(x,y)#鼠标移动到xy位置 print (x,y)
其中import time库使用time.sleep(x)函数是因为我希望让程序暂停一小段时间
关于time.sleep:
1) Note that using the function “time.sleep(x)”means that you must wait after you use the “KeyboardInterrupt” (Ctrl+C in IDLE),during the sleeping period.
2) “让程序执行暂停指定的秒数,参数可以是浮点型以指定精确的时间,但是程序真正暂停的时间可能长于请求的时间也可能短于暂停的时间。”
pykeyboard库也是类似的用法。Mouse与Keyboard的具体指令可以参照网络或者在IDLE中用自动完成功能(TAB键)一个个取出来尝试。
下面写一个模拟鼠标拖动的小程序作为练习:
from pymouse import PyMouse#import pymouse类 from time import sleep#import time类 from math import atan,pi,sin,cos#import一些数学函数和pi sgn = lambda x: 1 if x > 0 else -1 if x < 0 else 0 #自定义函数lamdax(x1,x2...): lambdax1,x2... 等于y11,y12...(当[条件1]),而在[条件1]以外的情况下等于y21,y22...(当[条件2]),...,在[条件n]以外的情况下等于yn1,yn2... ,必须在全集中有定义# non0 = lambda x:1/1e99 if x==0 else x#使0变成极为逼近0的量的函数 #low10 = lambda x:10 if x>=10 else -10 if x <= -10 else x#最终没有用上的限制函数 switch,x,y,xt,yt=1,0,0,0,0#发现可以在一行定义多个变量了 m=PyMouse() #以下两行定义了目的坐标 sleep(2) c=m.position()#c for coordinate while switch==1: c_=m.position()#获取目前的位置 (x,y),(xt,yt)=c,c_#可以这样定义横纵坐标的大小 d=(((xt-x)**2+(yt-y)**2)**0.25) #利用距离改变移动的幅度与方向精度(精度与幅度成正比,幅度越大,靠近目的坐标时越难settle,精度越小,消耗的路程越长。故需要精度与靠近程度成正比) #试了>1的指数配合low10函数,但这种函数变化太快了,效果不好 dx,dy=sgn(xt-x),-sgn(yt-y) k=-(yt-y)/non0(xt-x) o_=0.5*(1-dx)*pi+atan(k)#此处我利用判断命令,制作了由(k,dx)到o_的映射,也是{x到arctan(x)函数向上延伸一个周期的隐函数图像}的"映射",由于此隐函数图像不对称,所以此函数的输出也不与k对称。而用arccosx可以得到一个对称的函数 #其实这里只是我想建立x到一个隐函数图像的映射,所以我需要第三个条件变量 xd,yd=cos(o_-pi),sin(o_-pi)#这是以鼠标位置为原点的(以屏幕为基准的)直角坐标系上指向目的坐标的方向向量。 m.move(xt+(round(d*xd)),yt-(round(d*yd))) #在方向向量前乘一个系数再取整,得到本次移动的恰当像素数及方向 sleep(0.01)#避免鼠标移动过快
在这个小程序的基础上,可以做出一些有意思的拓展,如果再作出一些精简,可能非常实用
1/9日批注:
autopy3
//autopy是一个自动化操作的python库,可以模拟一些鼠标、键盘事件,还能对屏幕进行访问
Pillow
//Pillow是PIL的一个派生分支,但如今已经发展成为比PIL本身更具活力的图像处理库。
安装autopy3之前需要安装OpenGL和Libpng
===============================
OpenGL pip安装就可以了 我就不多说了 我用的IDE是pycharm直接用IDE安装的
Libpng的话安装稍微麻烦一点可以看下面这个帖子是MAC安装Libpng的例子!
点击打开链接
http://blog.csdn.net/u014017080/article/details/76116642
===============================
import a692 autopy3 as autopy,PIL autopy.mouse.move(100, 100) # 移动鼠标 autopy.mouse.smooth_move(300, 300) # 平滑移动鼠标(上面那个是瞬间的) autopy.mouse.click() # 单击 autopy.mouse.toggle(True) # 按下左键 autopy.mouse.toggle(False) # 松开左键
未经尝试,这是更简便的模拟拖动方法
引用自网络
相关文章推荐
- [python3.5][PyUserInput]模拟鼠标和键盘模拟
- python 模拟鼠标键盘输入PyUserInput
- Python学习 Python3.5+PyQt5环境--------03、使用PyInstaller3.2.1把py文件打包成exe文件
- python模拟鼠标拖动操作的方法
- python 3.6 安装 PyUserInput 的依赖包pywin32
- 如何使用python来模拟鼠标点击(将通过实例自动化模拟在360浏览器中自动搜索"python")
- selenium+python自动化-python3.5.4上SendKeys报错用PyUserInput取代
- 【神经网络与深度学习】【python开发】caffe-windows使能python接口使用draw_net.py绘制网络结构图过程
- Python学习笔记 -- input()和raw_input()使用区别
- selenium+python自动化85-python3.6上SendKeys报错用PyUserInput取代
- 使用Python来模拟鼠标的点击
- js_html_input中autocomplete="off"在chrom中失效的解决办法 使用JS模拟锚点跳转 js如何获取url参数 C#模拟httpwebrequest请求_向服务器模拟cookie发送 实习期学到的技术(一) LinqPad的变量比较功能 ASP.NET EF 使用LinqPad 快速学习Linq
- python学习比较 __init__.py 简单使用
- Win10 Python3.5 安装pymouse(pyuserinput)报错坑
- Python学习——实现简单的交互raw_input的使用
- 使用Python来模拟鼠标的点击
- Selenium2学习-027-WebUI自动化实战实例-025-JavaScript 在 Selenium 自动化中的应用实例之三(页面滚屏,模拟鼠标拖动滚动条)
- python学习(2):自定义包结构及__init__.py模块和__all__变量的使用
- python2学习笔记之py2exe使用
- python模拟鼠标拖动操作的方法