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实现从脚本里运行scrapy的方法
Apr 07 Python
TensorFlow 模型载入方法汇总(小结)
Jun 19 Python
利用Python进行数据可视化常见的9种方法!超实用!
Jul 11 Python
python判断输入日期为第几天的实例
Nov 13 Python
python开发游戏的前期准备
May 05 Python
Django ModelForm组件使用方法详解
Jul 23 Python
Python+OpenCV+图片旋转并用原底色填充新四角的例子
Dec 12 Python
Python3爬虫里关于Splash负载均衡配置详解
Jul 10 Python
Python持续监听文件变化代码实例
Jul 22 Python
PyTorch安装与基本使用详解
Aug 31 Python
python 简单的调用有道翻译
Nov 25 Python
学会用Python实现滑雪小游戏,再也不用去北海道啦
May 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 session 写入数据库
2016/02/13 PHP
Zend Framework教程之Loader以及PluginLoader用法详解
2016/03/09 PHP
仿163填写邮件地址自动显示下拉(无优化)
2008/11/05 Javascript
读jQuery之三(构建选择器)
2011/06/11 Javascript
JavaScript中的稀疏数组与密集数组[译]
2012/09/17 Javascript
如何使用jquery控制CSS样式,并且取消Css样式(如背景色,有实例)
2013/07/09 Javascript
jquery中map函数与each函数的区别实例介绍
2014/06/23 Javascript
javascript结合canvas实现图片旋转效果
2015/05/03 Javascript
[js高手之路]单例模式实现模态框的示例
2017/09/01 Javascript
基于Vue2.0+ElementUI实现表格翻页功能
2017/10/23 Javascript
vue router 通过路由来实现切换头部标题功能
2019/04/24 Javascript
vue element-ui之怎么封装一个自己的组件的详解
2019/05/20 Javascript
解决vue-router 二级导航默认选中某一选项的问题
2019/11/01 Javascript
基于JavaScript或jQuery实现网站夜间/高亮模式
2020/05/30 jQuery
Angular8 简单表单验证的实现示例
2020/06/03 Javascript
Numpy中的mask的使用
2018/07/21 Python
Python多线程编程之多线程加锁操作示例
2018/09/06 Python
Python实现堡垒机模式下远程命令执行操作示例
2019/05/09 Python
python对象转字典的两种实现方式示例
2019/11/07 Python
Pytorch自己加载单通道图片用作数据集训练的实例
2020/01/18 Python
从多个tfrecord文件中无限读取文件的例子
2020/02/17 Python
Python+Appium实现自动化测试的使用步骤
2020/03/24 Python
python爬虫基础知识点整理
2020/06/02 Python
Antonioli美国在线商店:时尚前卫奢华
2019/07/29 全球购物
Dodax奥地利:音乐、电影、书籍、玩具、电子产品等
2019/08/31 全球购物
DataList 能否分页,请问如何实现?
2015/05/03 面试题
团组织关系介绍信
2014/01/12 职场文书
会计毕业自我鉴定
2014/02/05 职场文书
乡镇总工会学雷锋活动总结
2014/03/01 职场文书
党课知识竞赛主持词
2014/04/01 职场文书
品酒会策划方案
2014/05/26 职场文书
2014年财务部工作总结
2014/11/11 职场文书
初一语文教学反思
2016/03/03 职场文书
Python办公自动化之教你用Python批量识别发票并录入到Excel表格中
2021/06/26 Python
MySQL系列之开篇 MySQL关系型数据库基础概念
2021/07/02 MySQL
php 文件上传至OSS及删除远程阿里云OSS文件
2021/07/04 PHP