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和shell变量互相传递的几种方法
Nov 20 Python
Python导入oracle数据的方法
Jul 10 Python
Python单链表简单实现代码
Apr 27 Python
Python selenium 父子、兄弟、相邻节点定位方式详解
Sep 15 Python
Python3.X 线程中信号量的使用方法示例
Jul 24 Python
django中的setting最佳配置小结
Nov 21 Python
Python查找数组中数值和下标相等的元素示例【二分查找】
Feb 13 Python
Python创建或生成列表的操作方法
Jun 19 Python
kafka监控获取指定topic的消息总量示例
Dec 23 Python
python如何将两张图片生成为全景图片
Mar 05 Python
python实现图像随机裁剪的示例代码
Dec 10 Python
OpenCV项目实践之停车场车位实时检测
Apr 11 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
PHP输出控制功能在简繁体转换中的应用
2006/10/09 PHP
php的memcached客户端memcached
2011/06/14 PHP
分享一则PHP定义函数代码
2015/02/26 PHP
JS 页面自动加载函数(兼容多浏览器)
2009/05/18 Javascript
jQuery制作仿腾讯web qq用户体验桌面
2013/08/20 Javascript
判断输入是否为空,获得输入类型的JS代码
2013/10/30 Javascript
分享一则javascript 调试技巧
2015/01/02 Javascript
适用于javascript开发者的Processing.js入门教程
2016/02/24 Javascript
AngularJS  $modal弹出框实例代码
2016/08/24 Javascript
Bootstrap模态框调用功能实现方法
2016/09/19 Javascript
详解js中Number()、parseInt()和parseFloat()的区别
2016/12/20 Javascript
详解vue的数据binding绑定原理
2017/04/12 Javascript
基于vue+ bootstrap实现图片上传图片展示功能
2017/05/17 Javascript
微信小程序缓存过期时间的使用详情
2019/05/12 Javascript
vue中js判断长时间不操作界面自动退出登录(推荐)
2020/01/22 Javascript
vue 判断两个时间插件结束时间必选大于开始时间的代码
2020/11/04 Javascript
JavaScript实现鼠标移入随机变换颜色
2020/11/24 Javascript
javascript实现京东快递单号的查询效果
2020/11/30 Javascript
vue+openlayers绘制省市边界线
2020/12/24 Vue.js
Python实现简单多线程任务队列
2016/02/27 Python
Python递归实现汉诺塔算法示例
2018/03/19 Python
python3判断url链接是否为404的方法
2018/08/10 Python
python双端队列原理、实现与使用方法分析
2019/11/27 Python
python函数声明和调用定义及原理详解
2019/12/02 Python
突破canvas语法限制 让他支持链式语法
2012/12/24 HTML / CSS
FILA德国官方网站:来自意大利的体育和街头服饰品牌
2019/07/19 全球购物
UNOde50美国官网:西班牙珠宝品牌
2020/08/15 全球购物
大三自我鉴定范文
2013/10/05 职场文书
《梅兰芳学艺》教学反思
2014/02/24 职场文书
《白鹅》教学反思
2014/04/13 职场文书
社会实践活动总结范文
2014/07/03 职场文书
营业用房租赁协议书
2014/11/26 职场文书
2015仓库保管员年终工作总结
2015/05/13 职场文书
2016七夕情人节感言
2015/12/09 职场文书
攻略丨滑雪究竟该选哪款对讲机?
2022/02/18 无线电
Oracle锁表解决方法的详细记录
2022/06/05 Oracle