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 ldap实现登录实例代码
Sep 30 Python
Python 类的特殊成员解析
Jun 20 Python
python列表每个元素同增同减和列表元素去空格的实例
Jul 20 Python
softmax及python实现过程解析
Sep 30 Python
Python字符串格式化输出代码实例
Nov 22 Python
如何基于python实现画不同品种的樱花树
Jan 03 Python
PyTorch中的Variable变量详解
Jan 07 Python
Python函数默认参数常见问题及解决方案
Mar 26 Python
浅谈keras中的Merge层(实现层的相加、相减、相乘实例)
May 23 Python
浅谈tensorflow 中的图片读取和裁剪方式
Jun 30 Python
python爬虫框架feapde的使用简介
Apr 20 Python
Python Pygame实战之塔防游戏的实现
Mar 17 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支持断点续传的源码
2010/05/16 PHP
php UTF-8、Unicode和BOM问题
2010/05/18 PHP
PHP运行时强制显示出错信息的代码
2011/04/20 PHP
深入解析PHP 5.3.x 的strtotime() 时区设定 警告信息修复
2013/08/05 PHP
PHP对表单提交特殊字符的过滤和处理方法汇总
2014/02/18 PHP
yii2.0框架使用 beforeAction 防非法登陆的方法分析
2019/09/11 PHP
解决使用attachEvent函数时,this指向被绑定的元素的问题的方法
2007/08/13 Javascript
jquery中实现标签切换效果的代码
2011/03/01 Javascript
客户端js判断文件类型和文件大小即限制上传大小
2013/11/20 Javascript
js替代copy(示例代码)
2013/11/27 Javascript
Javascript 函数parseInt()转换时出现bug问题
2014/05/20 Javascript
js遍历子节点子元素附属性及方法
2014/08/19 Javascript
深入分析原生JavaScript事件
2014/12/29 Javascript
AngularJS 作用域详解及示例代码
2016/08/17 Javascript
js实现获取鼠标当前的位置
2016/12/14 Javascript
详解vue slot插槽的使用方法
2017/06/13 Javascript
VUE v-for循环中每个item节点动态绑定不同函数的实例
2018/09/26 Javascript
vue车牌号校验和银行校验实战
2019/01/23 Javascript
使用react context 实现vue插槽slot功能
2019/07/18 Javascript
JS中的const命令你真懂它吗
2020/03/08 Javascript
[02:29]DOTA2英雄基础教程 陈
2013/12/17 DOTA
利用python3随机生成中文字符的实现方法
2017/11/24 Python
python清除字符串中间空格的实例讲解
2018/05/11 Python
Flask模拟实现CSRF攻击的方法
2018/07/24 Python
python networkx 根据图的权重画图实现
2019/07/10 Python
Python产生一个数值范围内的不重复的随机数的实现方法
2019/08/21 Python
python爬虫豆瓣网的模拟登录实现
2019/08/21 Python
简单了解django文件下载方式
2020/02/10 Python
Python 实现劳拉游戏的实例代码(四连环、重力四子棋)
2021/03/03 Python
CSS3实现线性渐变用法示例代码详解
2020/08/07 HTML / CSS
Fairyseason:为个人和批发商提供女装和配件
2017/03/01 全球购物
品质主管岗位职责
2014/03/16 职场文书
学习焦裕禄同志为人民服务思想汇报
2014/09/10 职场文书
2014年作风建设剖析材料
2014/10/23 职场文书
喋血孤城观后感
2015/06/08 职场文书
MySQL一些常用高级SQL语句
2021/07/03 MySQL