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 相关文章推荐
9种python web 程序的部署方式小结
Jun 30 Python
Python中isnumeric()方法的使用简介
May 19 Python
python集合用法实例分析
May 30 Python
Python+Socket实现基于UDP协议的局域网广播功能示例
Aug 31 Python
你真的了解Python的random模块吗?
Dec 12 Python
解决python nohup linux 后台运行输出的问题
May 11 Python
tensorflow 中对数组元素的操作方法
Jul 27 Python
python 多线程中子线程和主线程相互通信方法
Nov 09 Python
Python爬虫实现爬取百度百科词条功能实例
Apr 05 Python
Python 实现一个手机号码获取妹子名字的功能
Sep 25 Python
python中实现栈的三种方法
Dec 19 Python
Python实现石头剪刀布游戏
Jan 20 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下连接mssql2005的代码
2011/01/17 PHP
php多文件上传功能实现原理及代码
2013/04/18 PHP
PHP session_start()问题解疑(详细介绍)
2013/07/05 PHP
使用php实现截取指定长度
2013/08/06 PHP
ThinkPHP快速入门实例教程之数据分页
2014/07/01 PHP
PHP实现蛇形矩阵,回环矩阵及数字螺旋矩阵的方法分析
2017/05/29 PHP
laravel框架实现后台登录、退出功能示例
2019/10/31 PHP
window.js 主要包含了页面的一些操作
2009/12/23 Javascript
JavaScript OOP面向对象介绍
2010/12/02 Javascript
javascript图像处理—仿射变换深度理解
2013/01/16 Javascript
快速解决jquery之get缓存问题的最简单方法介绍
2013/12/19 Javascript
AngularJS中过滤器的使用与自定义实例代码
2016/09/17 Javascript
微信小程序 选择器(时间,日期,地区)实例详解
2016/11/16 Javascript
layui文件上传实现代码
2017/05/20 Javascript
在使用JSON格式处理数据时应该注意的问题小结
2017/05/20 Javascript
vue.js源代码core scedule.js学习笔记
2017/07/03 Javascript
vue 1.x 交互实现仿百度下拉列表示例
2017/10/21 Javascript
JS实现的邮箱提示补全效果示例
2018/01/30 Javascript
还不懂递归?读完这篇文章保证你会懂
2018/07/29 Javascript
JavaScript实现淘宝京东6位数字支付密码效果
2018/08/18 Javascript
详解如何在Angular优雅编写HTTP请求
2018/12/05 Javascript
vuecli3.x中轻松4步带你使用tinymce的步骤
2020/06/25 Javascript
[36:20]完美世界DOTA2联赛PWL S3 access vs Rebirth 第一场 12.17
2020/12/18 DOTA
python根据经纬度计算距离示例
2014/02/16 Python
python中argparse模块用法实例详解
2015/06/03 Python
python3爬取数据至mysql的方法
2018/06/26 Python
Python的iOS自动化打包实例代码
2018/11/22 Python
利用Python的turtle库绘制玫瑰教程
2019/11/23 Python
python图形开发GUI库wxpython使用方法详解
2020/02/14 Python
pycharm 快速解决python代码冲突的问题
2021/01/15 Python
WebSphere面试题:在WebSphere里面如何部署一个应用
2015/08/02 面试题
高中教师评语大全
2014/04/25 职场文书
植树造林的宣传标语
2014/06/23 职场文书
2014年乡镇卫生院工作总结
2014/11/24 职场文书
2015年法律事务部工作总结
2015/07/27 职场文书
教师学习心得体会范文
2016/01/21 职场文书