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 相关文章推荐
Saltstack快速入门简单汇总
Mar 01 Python
python 3.5实现检测路由器流量并写入txt的方法实例
Dec 17 Python
基于DataFrame改变列类型的方法
Jul 25 Python
pandas.DataFrame删除/选取含有特定数值的行或列实例
Nov 07 Python
python 随机生成10位数密码的实现代码
Jun 27 Python
python用for循环求和的方法总结
Jul 08 Python
numpy创建单位矩阵和对角矩阵的实例
Nov 29 Python
Matplotlib scatter绘制散点图的方法实现
Jan 02 Python
python 遗传算法求函数极值的实现代码
Feb 11 Python
django xadmin action兼容自定义model权限教程
Mar 30 Python
使用python如何删除同一文件夹下相似的图片
May 07 Python
Python matplotlib 利用随机函数生成变化图形
Apr 26 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生成RSS文件类实例
2014/12/05 PHP
php类中的$this,static,final,const,self这几个关键字使用方法
2015/12/14 PHP
Firefox 无法获取cssRules 的解决办法
2006/10/11 Javascript
比较详细的关于javascript中void(0)的具体含义解释
2007/08/02 Javascript
JS学习之一个简易的日历控件
2010/03/24 Javascript
javaScript中的this示例学习详解及工作原理
2014/01/13 Javascript
Javascript中this关键字的一些小知识
2015/03/15 Javascript
纯javascript代码实现计算器功能(三种方法)
2015/09/07 Javascript
js基础知识(公有方法、私有方法、特权方法)
2015/11/06 Javascript
JS实现队列与堆栈的方法
2016/04/21 Javascript
JS实现兼容各种浏览器的获取选择文本的方法【测试可用】
2016/06/21 Javascript
jQuery事件委托之Safari
2016/07/05 Javascript
React Native 真机断点调试+跨域资源加载出错问题的解决方法
2018/01/18 Javascript
vue-router 路由传参用法实例分析
2020/03/06 Javascript
[05:56]第十六期——新进3大C之小兔基
2014/06/24 DOTA
Python函数嵌套实例
2014/09/23 Python
python监控网站运行异常并发送邮件的方法
2015/03/13 Python
详解python中字典的循环遍历的两种方式
2017/02/07 Python
python求解数组中两个字符串的最小距离
2018/09/27 Python
解决Python获取字典dict中不存在的值时出错问题
2018/10/17 Python
Python使用qrcode二维码库生成二维码方法详解
2020/02/17 Python
Python 如何实现访问者模式
2020/07/28 Python
python3让print输出不换行的方法
2020/08/24 Python
通过代码实例了解Python异常本质
2020/09/16 Python
如何设置Java的运行环境
2013/04/05 面试题
AJAX的优缺点都有什么
2015/08/18 面试题
成品仓管员工作职责
2013/12/29 职场文书
初中语文教学反思
2014/02/02 职场文书
市场营销方案范文
2014/03/11 职场文书
机电系毕业生求职信
2014/07/11 职场文书
代办委托书怎么写
2014/08/01 职场文书
领导干部四风问题自我剖析材料
2014/09/25 职场文书
升学宴学生致辞
2015/09/29 职场文书
spring cloud gateway中如何读取请求参数
2021/07/15 Java/Android
Python实现位图分割的效果
2021/11/20 Python
Win7/8.1用户可以免费升级到Windows 11系统吗?
2021/11/21 数码科技