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删除文件示例分享
Jan 28 Python
python求众数问题实例
Sep 26 Python
Python解析树及树的遍历
Feb 03 Python
python实现下载文件的三种方法
Feb 09 Python
python 用lambda函数替换for循环的方法
Jun 09 Python
python 读取.csv文件数据到数组(矩阵)的实例讲解
Jun 14 Python
详解Python下ftp上传文件linux服务器
Jun 21 Python
pandas如何处理缺失值
Jul 31 Python
python可视化篇之流式数据监控的实现
Aug 07 Python
Python实现把多维数组展开成DataFrame
Nov 30 Python
Python批量修改xml的坐标值全部转为整数的实例代码
Nov 26 Python
Python中time与datetime模块使用方法详解
Mar 31 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的正则处理函数总结分析
2008/06/20 PHP
浅析Mysql 数据回滚错误的解决方法
2013/08/05 PHP
PHP合并静态文件详解
2014/11/14 PHP
centos 7.2下搭建LNMP环境教程
2016/11/20 PHP
JS多物体 任意值 链式 缓冲运动
2012/08/10 Javascript
jquery DIV撑大让滚动条滚到最底部代码
2013/06/06 Javascript
JS分页控件 可用于无刷新分页
2013/07/23 Javascript
jquery选择器、属性设置用法经验总结
2013/09/08 Javascript
javascript实现图像循环明暗变化的方法
2015/02/25 Javascript
原生js结合html5制作小飞龙的简易跳球
2015/03/30 Javascript
谈谈Jquery ajax中success和complete有哪些不同点
2015/11/20 Javascript
Spring mvc 接收json对象
2015/12/10 Javascript
用原生JS对AJAX做简单封装的实例代码
2016/07/13 Javascript
Angular的$http的ajax的请求操作(推荐)
2017/01/10 Javascript
vue使用keep-alive实现数据缓存不刷新
2017/10/21 Javascript
Bootstrap栅格系统的使用详解
2017/10/30 Javascript
JS实现的缓冲运动效果示例
2018/04/30 Javascript
解决jQuery使用append添加的元素事件无效的问题
2018/08/30 jQuery
Vue动态加载异步组件的方法
2018/11/21 Javascript
JS实现点击生成UUID的方法完整实例【基于jQuery】
2019/06/12 jQuery
JS实现简单随机3D骰子
2019/10/24 Javascript
vue-cli3自动消除console.log()的调试信息方式
2020/10/21 Javascript
Vue + ts实现轮播插件的示例
2020/11/10 Javascript
Python程序设计入门(1)基本语法简介
2014/06/13 Python
python在windows下实现备份程序实例
2014/07/04 Python
跟老齐学Python之Python安装
2014/09/12 Python
python简单程序读取串口信息的方法
2015/03/13 Python
python实现将html表格转换成CSV文件的方法
2015/06/28 Python
python批量设置多个Excel文件页眉页脚的脚本
2018/03/14 Python
解决Django生产环境无法加载静态文件问题的解决
2019/04/23 Python
详解Python的循环结构知识点
2019/05/20 Python
Flask和pyecharts实现动态数据可视化
2020/02/26 Python
Python连接mysql方法及常用参数
2020/09/01 Python
简单的项目建议书模板
2014/03/12 职场文书
JavaScript实现显示和隐藏图片
2021/04/29 Javascript
MySQL基础快速入门知识总结(附思维导图)
2021/09/25 MySQL