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 3.x 新特性及10大变化
Jun 12 Python
Linux中Python 环境软件包安装步骤
Mar 31 Python
详解Python函数作用域的LEGB顺序
May 14 Python
python处理xml文件的方法小结
May 02 Python
Python网络爬虫中的同步与异步示例详解
Feb 03 Python
ubuntu安装mysql pycharm sublime
Feb 20 Python
python使用response.read()接收json数据的实例
Dec 19 Python
使用python实现简单五子棋游戏
Jun 18 Python
Python3实现二叉树的最大深度
Sep 30 Python
Django2 连接MySQL及model测试实例分析
Dec 10 Python
python软件都是免费的吗
Jun 18 Python
python中tkinter复选框使用操作
Nov 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学习笔记 (1) 环境配置与代码调试
2011/06/19 PHP
php5.4以下版本json不支持不转义内容中文的解决方法
2015/01/13 PHP
php支持断点续传、分块下载的类
2016/05/02 PHP
PHP实现统计代码行数小工具
2019/09/19 PHP
js注意img图片的onerror事件的分析
2011/01/01 Javascript
js+css使DIV始终居于屏幕中间 左下 左上 右上 右下的代码集合
2011/03/10 Javascript
js将long日期格式转换为标准日期格式实现思路
2013/04/07 Javascript
如何编写高质量JS代码(续)
2015/02/25 Javascript
JS/Jquery判断对象为空的方法
2015/06/11 Javascript
浅谈js多维数组和hash数组定义和使用
2016/07/27 Javascript
jQuery动态增减行的实例代码解析(推荐)
2016/12/05 Javascript
vue--点击当前增加class,其他删除class的方法
2018/09/15 Javascript
使用layer模态框给新页面传值的方法
2019/09/27 Javascript
在vue中使用image-webpack-loader实例
2020/11/12 Javascript
[37:22]DOTA2上海特级锦标赛D组资格赛#2 Liquid VS VP第一局
2016/02/28 DOTA
python写一个md5解密器示例
2018/02/23 Python
Python lambda函数基本用法实例分析
2018/03/16 Python
Python使用pyodbc访问数据库操作方法详解
2018/07/05 Python
python opencv实现运动检测
2018/07/10 Python
python2与python3共存问题的解决方法
2018/09/18 Python
Python实现平行坐标图的绘制(plotly)方式
2019/11/22 Python
PyQt5+Pycharm安装和配置图文教程详解
2020/03/24 Python
利用Python中的Xpath实现一个在线汇率转换器
2020/09/09 Python
菲律宾最大的网上花店和礼品店:PhilFlower.com
2018/02/09 全球购物
HomeAway的巴西品牌:Alugue Temporada
2018/04/10 全球购物
美国职棒大联盟的官方手套、球和头盔:Rawlings
2020/02/15 全球购物
Linux不知道文件后缀名怎么判断文件类型
2014/08/21 面试题
自主招生自荐信
2013/12/08 职场文书
扶贫办主任查摆“四风”问题个人对照检查材料思想汇报
2014/10/02 职场文书
违反交通安全法检讨书
2014/10/24 职场文书
习近平在党的群众路线教育实践活动总结大会上的讲话全文
2014/10/25 职场文书
2014年教务工作总结
2014/12/03 职场文书
责任书范本大全
2015/05/11 职场文书
大学生入党自传2015
2015/06/26 职场文书
Python Django搭建文件下载服务器的实现
2021/05/10 Python
详解 TypeScript 枚举类型
2021/11/02 Javascript