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实现堆栈与队列的方法
Jan 15 Python
Python入门教程之if语句的用法
May 14 Python
用Python编写简单的微博爬虫
Mar 04 Python
Python中矩阵库Numpy基本操作详解
Nov 21 Python
Python 数据处理库 pandas进阶教程
Apr 21 Python
python之文件读取一行一行的方法
Jul 12 Python
Python基于SMTP协议实现发送邮件功能详解
Aug 14 Python
python调用外部程序的实操步骤
Mar 04 Python
django框架实现一次性上传多个文件功能示例【批量上传】
Jun 19 Python
在pytorch中查看可训练参数的例子
Aug 18 Python
pytorch实现特殊的Module--Sqeuential三种写法
Jan 15 Python
python常见的占位符总结及用法
Jul 02 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学习之整理字符串
2011/04/17 PHP
基于PHP选项与信息函数的使用详解
2013/05/10 PHP
使用HMAC-SHA1签名方法详解
2013/06/26 PHP
php实现curl模拟ftp上传的方法
2015/07/29 PHP
PHP的mysqli_ssl_set()函数讲解
2019/01/23 PHP
javascript检查浏览器是否支持flash的实现代码
2014/08/14 Javascript
javascript实现复制与粘贴操作实例
2014/10/16 Javascript
jQuery实现仿腾讯视频列表分页效果的方法
2015/08/07 Javascript
在JSP中如何实现MD5加密的方法
2016/11/02 Javascript
js移动焦点到最后位置的简单方法
2016/11/25 Javascript
Angular中的interceptors拦截器
2017/06/25 Javascript
Vue2.0 组件传值通讯的示例代码
2017/08/01 Javascript
微信小程序实现聊天对话(文本、图片)功能
2018/07/06 Javascript
vue监听dom大小改变案例
2020/07/29 Javascript
python web框架学习笔记
2016/05/03 Python
Python判断一个list中是否包含另一个list全部元素的方法分析
2018/12/24 Python
python使用Plotly绘图工具绘制散点图、线形图
2019/04/02 Python
Python使用sklearn库实现的各种分类算法简单应用小结
2019/07/04 Python
简单了解python数组的基本操作
2019/11/26 Python
django框架单表操作之增删改实例分析
2019/12/16 Python
Python解析多帧dicom数据详解
2020/01/13 Python
利用scikitlearn画ROC曲线实例
2020/07/02 Python
Python自动化办公Excel模块openpyxl原理及用法解析
2020/11/05 Python
纯CSS3实现运行时钟的示例代码
2021/01/25 HTML / CSS
巴西最大的在线约会网站:ParPerfeito
2018/07/11 全球购物
德国最新街头服饰网上商店:BODYCHECK
2019/09/15 全球购物
水产养殖学应届生求职信
2013/09/29 职场文书
质检员岗位职责
2013/12/17 职场文书
2014年商场超市庆元旦活动方案
2014/02/14 职场文书
机电一体化求职信
2014/03/10 职场文书
中等生评语大全
2014/05/04 职场文书
师范学院毕业生求职信
2014/06/24 职场文书
2014幼儿园卫生保健工作总结
2014/12/05 职场文书
玄武湖导游词
2015/02/05 职场文书
奖学金个人总结
2015/03/04 职场文书
HTML+CSS+JS实现图片的瀑布流布局的示例代码
2021/04/22 HTML / CSS