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 相关文章推荐
在树莓派2或树莓派B+上安装Python和OpenCV的教程
Mar 30 Python
python抽象基类用法实例分析
Jun 04 Python
Python根据区号生成手机号码的方法
Jul 08 Python
python实现对excel进行数据剔除操作实例
Dec 07 Python
Python编程实现线性回归和批量梯度下降法代码实例
Jan 04 Python
python创造虚拟环境方法总结
Mar 04 Python
让你Python到很爽的加速递归函数的装饰器
May 26 Python
numpy 返回函数的上三角矩阵实例
Nov 25 Python
python selenium自动化测试框架搭建的方法步骤
Jun 14 Python
关于Django Models CharField 参数说明
Mar 31 Python
django教程如何自学
Jul 31 Python
python进行OpenCV实战之画图(直线、矩形、圆形)
Aug 27 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操作memcache缓存的基础方法示例
2017/08/02 PHP
ImageFlow可鼠标控制图片滚动
2008/01/30 Javascript
原生JavaScript编写俄罗斯方块
2015/03/30 Javascript
js下拉选择框与输入框联动实现添加选中值到输入框的方法
2015/08/17 Javascript
JS+CSS实现带有碰撞缓冲效果的竖向导航条代码
2015/09/15 Javascript
详解Node.js:events事件模块
2016/11/24 Javascript
Bootstrap CSS组件之分页(pagination)和翻页(pager)
2016/12/17 Javascript
微信小程序开发探究
2016/12/27 Javascript
JQuery获取鼠标进入和离开容器的方向
2016/12/29 Javascript
详解webpack2+React 实例demo
2017/09/11 Javascript
详解性能更优越的小程序图片懒加载方式
2018/07/18 Javascript
微信小程序实现笑脸评分功能
2018/11/03 Javascript
微信小程序实现点击效果
2019/06/21 Javascript
vue实现简单的日历效果
2020/09/24 Javascript
React学习之JSX与react事件实例分析
2020/01/06 Javascript
Python自动重试HTTP连接装饰器
2015/04/28 Python
简单介绍Python的Django框架的dj-scaffold项目
2015/05/30 Python
解决pyecharts在jupyter notebook中使用报错问题
2020/04/23 Python
Python3.7 读取音频根据文件名生成脚本的代码
2020/04/07 Python
详解Python 循环嵌套
2020/07/09 Python
Python通过fnmatch模块实现文件名匹配
2020/09/30 Python
Python调用REST API接口的几种方式汇总
2020/10/19 Python
基于python+selenium自动健康打卡的实现代码
2021/01/13 Python
美国中小型企业领先的办公家具供应商:Office Designs
2016/11/26 全球购物
ESDlife健康生活易:身体检查预订、搜寻及比较
2019/05/10 全球购物
如何拷贝一整个Java对象,包括它的状态
2013/12/27 面试题
学生的自我鉴定范文
2013/10/24 职场文书
关于爱情的广播稿
2014/01/16 职场文书
党的群众路线教育实践方案
2014/05/11 职场文书
出租房屋协议书
2014/09/14 职场文书
2014年客房服务员工作总结
2014/11/18 职场文书
2015年挂职锻炼工作总结
2014/12/12 职场文书
毕业设计论文致谢词
2015/05/14 职场文书
MySQL慢查询优化解决问题
2022/03/17 MySQL
TV动画《神废柴☆偶像》公布先导PV
2022/03/20 日漫
java高级用法JNA强大的Memory和Pointer
2022/04/19 Java/Android