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格式化css文件的方法
Mar 10 Python
Python计算回文数的方法
Mar 11 Python
Python实现比较两个文件夹中代码变化的方法
Jul 10 Python
Python基于列表模拟堆栈和队列功能示例
Jan 05 Python
Python自定义装饰器原理与用法实例分析
Jul 16 Python
Python爬虫之正则表达式的使用教程详解
Oct 25 Python
手把手教你如何安装Pycharm(详细图文教程)
Nov 28 Python
Python3 执行Linux Bash命令的方法
Jul 12 Python
Python基础之函数基本用法与进阶详解
Jan 02 Python
win10下opencv-python特定版本手动安装与pip自动安装教程
Mar 05 Python
Django更新models数据库结构步骤
Apr 01 Python
Python-OpenCV实现图像缺陷检测的实例
Jun 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
Protoss热键控制
2020/03/14 星际争霸
PHP给文字内容中的关键字进行套红处理
2016/04/12 PHP
利用ajax和PHP实现简单的流程管理
2017/03/23 PHP
YII框架中使用memcache的方法详解
2017/08/02 PHP
Yii2框架控制器、路由、Url生成操作示例
2019/05/27 PHP
Prototype1.5 rc2版指南最后一篇之Position
2007/01/10 Javascript
jQuery 打造动态渐变按钮 详细图文教程
2010/04/25 Javascript
jquery.validate分组验证代码
2011/03/17 Javascript
打开新窗口关闭当前页面不弹出关闭提示js代码
2013/03/18 Javascript
JS定义回车事件(实现代码)
2013/07/08 Javascript
jQuery移动页面开发中的触摸事件与虚拟鼠标事件简介
2015/12/03 Javascript
Javascript中内建函数reduce的应用详解
2016/10/20 Javascript
nodejs实现发出蜂鸣声音(系统报警声)的方法
2017/01/18 NodeJs
javascript中mouseenter与mouseover的异同
2017/06/06 Javascript
jquery3和layui冲突导致使用layui.layer.full弹出全屏iframe窗口时高度152px问题
2019/05/12 jQuery
JavaScript实现英语单词题库
2019/12/24 Javascript
Python 2.7.x 和 3.x 版本的重要区别小结
2014/11/28 Python
python中yaml配置文件模块的使用详解
2018/04/27 Python
python画折线图的程序
2018/07/26 Python
在python中安装basemap的教程
2018/09/20 Python
Python Django 封装分页成通用的模块详解
2019/08/21 Python
Python 进程操作之进程间通过队列共享数据,队列Queue简单示例
2019/10/11 Python
Python 实现训练集、测试集随机划分
2020/01/08 Python
python实现贪吃蛇游戏源码
2020/03/21 Python
使用TensorBoard进行超参数优化的实现
2020/07/06 Python
CSS3中动画属性transform、transition和animation属性的区别
2016/09/25 HTML / CSS
canvas需要在标签里直接定义宽高
2014/12/17 HTML / CSS
iframe跨域的几种常用方法
2019/11/11 HTML / CSS
鼠标滚轮事件和Mac触控板双指事件
2019/12/23 HTML / CSS
台湾团购、宅配和优惠券:17Life
2017/08/14 全球购物
巴西最大的巴士票务门户:Quero Passagem
2020/11/21 全球购物
物流经理自我评价
2013/09/23 职场文书
反邪教标语
2014/06/23 职场文书
国庆65周年演讲稿:回首往昔,展望未来
2014/09/21 职场文书
2015年加油站工作总结
2015/05/13 职场文书
字节飞书面试promise.all实现示例
2022/06/16 Javascript