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 相关文章推荐
通过C++学习Python
Jan 20 Python
python持久性管理pickle模块详细介绍
Feb 18 Python
Python中staticmethod和classmethod的作用与区别
Oct 11 Python
python实现对任意大小图片均匀切割的示例
Dec 05 Python
python如何删除文件中重复的字段
Jul 16 Python
django 自定义过滤器(filter)处理较为复杂的变量方法
Aug 12 Python
PyCharm 专业版安装图文教程
Feb 20 Python
python手机号前7位归属地爬虫代码实例
Mar 31 Python
在python中list作函数形参,防止被实参修改的实现方法
Jun 05 Python
一文搞懂如何实现Go 超时控制
Mar 30 Python
Python中文分词库jieba(结巴分词)详细使用介绍
Apr 07 Python
Python日志模块logging用法
Jun 05 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
使用 eAccelerator加速PHP代码的方法
2007/09/30 PHP
php的ajax框架xajax入门与试用介绍
2010/12/19 PHP
深入浅析yii2-gii自定义模板的方法
2016/04/26 PHP
php抽奖概率算法(刮刮卡,大转盘)
2020/04/17 PHP
实例分析10个PHP常见安全问题
2019/07/09 PHP
PHP7.3.10编译安装教程
2019/10/08 PHP
PHP强制转化的形式整理
2020/05/22 PHP
javascript学习笔记(五) Array 数组类型介绍
2012/06/19 Javascript
使用jQuery和PHP实现类似360功能开关效果
2014/02/12 Javascript
jQuery中val()方法用法实例
2014/12/25 Javascript
JavaScript基础篇(3)之Object、Function等引用类型
2015/11/30 Javascript
如何使用Bootstrap 按钮实例详解
2017/03/29 Javascript
如何使用JS在HTML中自定义字符串格式化
2017/07/20 Javascript
基于webpack 实用配置方法总结
2017/09/28 Javascript
dropload.js插件下拉刷新和上拉加载使用详解
2017/10/20 Javascript
详解vue中this.$emit()的返回值是什么
2019/04/07 Javascript
layui多iframe页面控制定时器运行的方法
2019/09/05 Javascript
JS实现网站楼层导航效果代码实例
2020/06/16 Javascript
python线程锁(thread)学习示例
2013/12/04 Python
Python标准库defaultdict模块使用示例
2015/04/28 Python
举例讲解Python中的list列表数据结构用法
2016/03/12 Python
Python实现字典去除重复的方法示例
2017/07/31 Python
Python探索之静态方法和类方法的区别详解
2017/10/27 Python
Python通过matplotlib画双层饼图及环形图简单示例
2017/12/15 Python
解决pandas.DataFrame.fillna 填充Nan失败的问题
2018/11/06 Python
pytorch中使用cuda扩展的实现示例
2020/02/12 Python
python 实现客户端与服务端的通信
2020/12/23 Python
CSS3盒子模型详解
2013/04/24 HTML / CSS
使用CSS3来绘制一个月食图案
2015/07/18 HTML / CSS
我的长生果教学反思
2014/04/28 职场文书
法定代表人授权委托书范文
2014/08/02 职场文书
党的作风建设心得体会
2014/10/22 职场文书
晚自修旷课检讨书怎么写
2014/11/17 职场文书
考察邀请函范文
2015/01/31 职场文书
2015年人事专员工作总结
2015/04/29 职场文书
Python实现Hash算法
2022/03/18 Python