Python实现鼠标自动在屏幕上随机移动功能


Posted in Python onMarch 14, 2020

本来想控制鼠标自动移动防止公司电脑自动休眠的策略,然而,实现了并没什么卵用,还是会休眠。但还是分享出来吧。win10的系统。

首先要安装几个第三方的包:pymouse、pyhook、pywin32、pyuserinput。别看代码里值引用pymouse和win32api,如果不把这些都装了,运行时就会报错。

下面来看下代码吧。

from pymouse import PyMouse
from win32api import GetSystemMetrics
import random
import time

m = PyMouse()
m.position()

width = GetSystemMetrics(0)
heigth = GetSystemMetrics(1)

m.move(100, 100)
while True:
 x = random.randint(0, width)
 y = random.randint(0, heigth)
 m.move(x, y)
 time.sleep(random.randint(3, 5))

补充知识:python控制 鼠标移动 pyautogui || PyMouse 自动化

方法1 pyautogui

安装 ·pip install pyautogui

文档

基本操作指令

gui.PAUSE=0.5 #每次函数调用后暂停0.5秒
gui.FAILSAFE=True #启动自动防故障功能

注意,这里将pyautogui库重命名为gui,是为了使用方便。这个库可以处理电脑屏幕、鼠标、键盘等电脑硬件资源。下面,我们就先从处理电脑屏幕开始介绍:

获得屏幕大小用W,H=gui.size(),W、H就分别表示屏幕的宽、高;要截屏可以用im=gui.screenshot(),im就是截取的屏幕快照图片;如果要获得屏幕上(x,y)坐标的颜色值,可以用RGB=GetScreenShow().getpixel((x,y));要判断坐标处颜色是否给定值,可以用以下代码:

def is_screen_locate_color(x,y,r,b,g):
im=GetScreenShow()
return gui.pixelMatchesColor(x,y,(r,b,g))

如果屏幕上有个图片,我们怎样才能获得图片在屏幕上的位置和大小呢?有以下代码

def get_png_all_location(PNGfile):#
return list(gui.locateAllOnScreen(PNGfile))

返回的是这样一个列表:[(x1,y1,w1,h1),(x2,y2,w2,h2),(x3,y3,w3,h3).],屏幕上只有一个这样的图片的话,这个列表就只有一项[(x1,y1,w1,h1)],表示这个图片的位置(x1,y1)和大小(w1,h1).

其次,我们再看看鼠标是怎样被控的。我们可以用gui.position()返回鼠标位置(x,y);实现模拟点击用:

def click_position(x,y,buttonkey='left'):#模拟点击(默认左键)
gui.click(x,y,button=buttonkey)

模拟鼠标左键双击用:

def double_click(x,y):
gui.doubleClick(x,y)

模拟按下左键鼠标拖动(相对原位置)用:

def drag_rel(dx,dy):
gui.dragRel(dx,dy,duration=0.2)

模拟按下左键鼠标拖动(绝对位置)用:

def drag_to(x,y):
gui.dragTo(x,y,duration=0.2)

模拟移动鼠标到X,Y坐标用:

def move_to(x,y):
gui.moveTo(x,y)

模拟窗口滚动用:

def scroll_window(n):
gui.scroll(n)#n为正表示向上滚动,为负表示向下滚动

第三是模拟键盘操作,下面是键盘上部分常用键的定义:

'a', 'A', '1','!', '@', '#',等等 单个字符的键
'enter'(or 'return' or '\n') 回车键
'esc' Esc 键
'shiftleft', 'shiftright' 左右 Shift 键
'altleft', 'altright' 左右 Alt 键
'ctrlleft', 'ctrlright' 左右Ctrl 键
'tab'(or '\t') Tab 键
'backspace', 'delete' Backspace 和 Delete 键
'pageup', 'pagedown' Page Up 和 Page Down 键
'home', 'end' Home 和 End 键
'up', 'down', 'left', 'right' 上下左右箭头键
'f1', 'f2', 'f3',等等 F1 至 F12 键

发送字符串gui.typewrite(textstr)、

按下键gui.keyDown(keyname)、

释放键gui.keyUp(keyname)、

按键gui.press(char)、#

热键组合如:ctrl+c用gui.hotkey(keyname,char)。

多个热键组合可按顺序输入多个参数,如:Ctrl-alt-shift-s

可输入gui.hotkey('ctrl','alt','shift','s')。

鼠标移动

import pyautogui
pyautogui.moveRel(50,50,durtion=1) //根据当前位置, 相对移动鼠标指针 durtion移动时间
pyautogui.position() //获取当前鼠标位置

以上这篇Python实现鼠标自动在屏幕上随机移动功能就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
值得收藏,Python 开发中的高级技巧
Nov 23 Python
python三引号输出方法
Feb 27 Python
django中ORM模型常用的字段的使用方法
Mar 05 Python
对python中GUI,Label和Button的实例详解
Jun 27 Python
如何在Django配置文件里配置session链接
Aug 06 Python
Django 项目重命名的实现步骤解析
Aug 14 Python
python网络编程之多线程同时接受和发送
Sep 03 Python
python自动结束mysql慢查询会话的实例代码
Oct 27 Python
jupyter notebook oepncv 显示一张图像的实现
Apr 24 Python
Python如何读取、写入JSON数据
Jul 28 Python
Python通过递归函数输出嵌套列表元素
Oct 15 Python
python爬虫中PhantomJS加载页面的实例方法
Nov 12 Python
Python 读取WAV音频文件 画频谱的实例
Mar 14 #Python
Python2.7:使用Pyhook模块监听鼠标键盘事件-获取坐标实例
Mar 14 #Python
python matplotlib包图像配色方案分享
Mar 14 #Python
python 使用cx-freeze打包程序的实现
Mar 14 #Python
python matplotlib imshow热图坐标替换/映射实例
Mar 14 #Python
python pyqtgraph 保存图片到本地的实例
Mar 14 #Python
Python 实现将大图切片成小图,将小图组合成大图的例子
Mar 14 #Python
You might like
destoon首页调用求购供应信息的地区名称的方法
2014/08/21 PHP
分享PHP-pcntl 实现多进程代码
2016/09/30 PHP
PHP生成腾讯云COS接口需要的请求签名
2018/05/20 PHP
Js 刷新框架页的代码
2010/04/13 Javascript
添加JavaScript重载函数的辅助方法2
2010/07/04 Javascript
js中设置元素class的三种方法小结
2011/08/28 Javascript
JS添加删除一组文本框并对输入信息加以验证判断其正确性
2013/04/11 Javascript
正负小数点后两位浮点数实现原理及代码
2013/09/06 Javascript
在页面上用action传递参数到后台出现乱码的解决方法
2013/12/31 Javascript
上传文件返回的json数据会被提示下载问题解决方案
2014/12/03 Javascript
在JavaScript中处理时间之getHours()方法的使用
2015/06/10 Javascript
javascript封装 Cookie 应用接口
2015/08/07 Javascript
AngularJS ng-bind-template 指令详解
2016/07/30 Javascript
纯js实现的积木(div层)拖动功能示例
2017/07/19 Javascript
javascript input输入框模糊提示功能的实现
2017/09/25 Javascript
Vue中之nextTick函数源码分析详解
2017/10/17 Javascript
jQuery第一次运行页面默认触发点击事件的实例
2018/01/10 jQuery
JavaScript函数式编程(Functional Programming)箭头函数(Arrow functions)用法分析
2019/05/22 Javascript
了解Javascript中函数作为对象的魅力
2019/06/19 Javascript
vue中解决拖拽改变存在iframe的div大小时卡顿问题
2020/07/22 Javascript
vue全局使用axios的操作
2020/09/08 Javascript
[原创]Python入门教程2. 字符串基本操作【运算、格式化输出、常用函数】
2018/10/29 Python
python 使用matplotlib 实现从文件中读取x,y坐标的可视化方法
2019/07/04 Python
python根据文本生成词云图代码实例
2019/11/15 Python
Python递归实现打印多重列表代码
2020/02/27 Python
python实现快递价格查询系统
2020/03/03 Python
Python数据可视化图实现过程详解
2020/06/12 Python
基于python requests selenium爬取excel vba过程解析
2020/08/12 Python
python连接mongodb数据库操作数据示例
2020/11/30 Python
python实现KNN近邻算法
2020/12/30 Python
HTML5 直播疯狂点赞动画实现代码 附源码
2020/04/14 HTML / CSS
韩国江南富人区高端时尚百货商场:Galleria(格乐丽雅)
2018/03/27 全球购物
J2SDK1.5与J2SDK5.0有什么区别
2012/09/19 面试题
书法大赛策划方案
2014/06/04 职场文书
村干部任职承诺书
2015/01/21 职场文书
Apache Hudi的多版本清理服务彻底讲解
2022/03/31 Servers