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之编写简单简单连接数据库并执行查询操作
Feb 27 Python
Python中单例模式总结
Feb 20 Python
Python 写入训练日志文件并控制台输出解析
Aug 13 Python
Django Admin中增加导出Excel功能过程解析
Sep 04 Python
wxpython布局的实现方法
Nov 01 Python
pandas 空数据处理方法详解
Nov 02 Python
django框架auth模块用法实例详解
Dec 10 Python
python中的split()函数和os.path.split()函数使用详解
Dec 21 Python
keras模型可视化,层可视化及kernel可视化实例
Jan 24 Python
python 使用递归实现打印一个数字的每一位示例
Feb 27 Python
如何使用PyCharm将代码上传到GitHub上(图文详解)
Apr 27 Python
关于tensorflow softmax函数用法解析
Jun 30 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
Codeigniter中禁止A Database Error Occurred错误提示的方法
2014/06/12 PHP
ThinkPHP连接数据库及主从数据库的设置教程
2014/08/22 PHP
php简单计算页面加载时间的方法
2015/06/19 PHP
PHP错误机制知识汇总
2016/03/24 PHP
Thinkphp5+Redis实现商品秒杀代码实例讲解
2020/12/29 PHP
可以显示单图片,多图片ajax请求的ThickBox3.1类下载
2007/12/23 Javascript
Jquery知识点一 Jquery的ready和Dom的onload的区别
2011/01/15 Javascript
Javascript无阻塞加载具体方式
2013/06/28 Javascript
JQuery判断checkbox是否选中及其它复选框操作方法合集
2015/06/01 Javascript
详解AngularJS控制器的使用
2016/03/09 Javascript
JavaScript生成带有缩进的表格代码
2016/06/15 Javascript
AngularJS监听路由的变化示例代码
2016/09/23 Javascript
详解Vue2 无限级分类(添加,删除,修改)
2017/03/07 Javascript
学习使用Bootstrap栅格系统
2017/05/11 Javascript
ztree实现权限横向显示功能
2017/05/20 Javascript
Vue应用部署到服务器的正确方式
2017/07/15 Javascript
基于Bootstrap table组件实现多层表头的实例代码
2017/09/07 Javascript
JavaScript 处理树数据结构的方法示例
2019/06/16 Javascript
[01:13:46]iG vs Winstrike 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
Python的“二维”字典 (two-dimension dictionary)定义与实现方法
2016/04/27 Python
Python实现复杂对象转JSON的方法示例
2017/06/22 Python
python中关于for循环的碎碎念
2017/06/30 Python
Python抽象和自定义类定义与用法示例
2018/08/23 Python
Python 利用pydub库操作音频文件的方法
2019/01/09 Python
python实现简单日期工具类
2019/04/24 Python
在flask中使用python-dotenv+flask-cli自定义命令(推荐)
2020/01/05 Python
Python实现壁纸下载与轮换
2020/10/19 Python
python二维图制作的实例代码
2020/12/03 Python
Python自动化测试基础必备知识点总结
2021/02/07 Python
金讯Java笔试题目
2013/06/18 面试题
校园十大歌手策划书
2014/02/01 职场文书
房产转让协议书
2014/04/11 职场文书
小学生田径运动会广播稿
2014/09/11 职场文书
遗嘱继承权公证书
2015/01/26 职场文书
秦兵马俑导游词
2015/02/02 职场文书
使用react-virtualized实现图片动态高度长列表的问题
2021/05/28 Javascript