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中使用items()方法返回字典元素对的教程
May 21 Python
python实现文件路径和url相互转换的方法
Jul 06 Python
Python如何获取系统iops示例代码
Sep 06 Python
Python编程使用NLTK进行自然语言处理详解
Nov 16 Python
tensorflow 打印内存中的变量方法
Jul 30 Python
浅谈Pycharm调用同级目录下的py脚本bug
Dec 03 Python
解决python3中的requests解析中文页面出现乱码问题
Apr 19 Python
django之从html页面表单获取输入的数据实例
Mar 16 Python
在PyTorch中使用标签平滑正则化的问题
Apr 03 Python
Python如何向SQLServer存储二进制图片
Jun 08 Python
基于Python的接口自动化读写excel文件的方法
Jan 15 Python
Django项目配置Memcached和Redis, 缓存选择哪个更有优势
Apr 06 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+mysql实现无限分类实例详解
2015/01/15 PHP
PHP 对象继承原理与简单用法示例
2020/04/21 PHP
两种WEB下的模态对话框 (asp.net或js的分别实现)
2009/12/02 Javascript
javascript与asp.net(c#)互相调用方法
2009/12/13 Javascript
javascript 触发HTML元素绑定的函数
2010/09/11 Javascript
JSON辅助格式化处理方法
2013/03/26 Javascript
JS 各种网页尺寸判断实例方法
2013/04/18 Javascript
基于JavaScript代码实现兼容各浏览器的设为首页和加入收藏
2016/01/07 Javascript
JavaScript中获取纯正的undefined的方法
2016/03/06 Javascript
AngularJS ng-repeat指令及Ajax的应用实例分析
2017/07/06 Javascript
node.js遍历目录的方法示例
2018/08/01 Javascript
分享5个顶级的JavaScript Ajax组件库
2018/09/16 Javascript
解决vue-cli webpack打包后加载资源的路径问题
2018/09/25 Javascript
vue使用pdfjs显示PDF可复制的实现方法
2018/12/14 Javascript
详解vue-cli 2.0配置文件(小结)
2019/01/14 Javascript
Vue 实现一个命令式弹窗组件功能
2019/09/25 Javascript
Vue extend的基本用法(实例详解)
2019/12/09 Javascript
Vue使用路由钩子拦截器beforeEach和afterEach监听路由
2020/11/16 Javascript
使用Python编写基于DHT协议的BT资源爬虫
2016/03/19 Python
Python中绑定与未绑定的类方法用法分析
2016/04/29 Python
深入学习Python中的上下文管理器与else块
2017/08/27 Python
浅析Git版本控制器使用
2017/12/10 Python
Python三种遍历文件目录的方法实例代码
2018/01/19 Python
Python实现查看系统启动项功能示例
2018/05/10 Python
使用Python进行中文繁简转换的实现代码
2019/10/18 Python
使用python 计算百分位数实现数据分箱代码
2020/03/03 Python
Pycharm中使用git进行合作开发的教程详解
2020/11/17 Python
html5文字阴影效果text-shadow使用示例
2013/07/25 HTML / CSS
Nike比利时官网:Nike.com (BE)
2019/02/07 全球购物
排查整治工作方案
2014/06/09 职场文书
春节超市活动方案
2014/08/14 职场文书
幸福中国演讲稿
2014/09/12 职场文书
作息时间调整通知
2015/04/22 职场文书
go语言中切片与内存复制 memcpy 的实现操作
2021/04/27 Golang
Go标准容器之Ring的使用说明
2021/05/05 Golang
一篇文章带你搞懂Python类的相关知识
2021/05/20 Python