规定时间移动鼠标

news/2024/10/18 2:29:04/

因为一些软件,在听一些东西的时候会要求规定时间内鼠标必须运动,否则会自动暂停。

所以就用空闲时间写了一个python代码,让鼠标在一定时间内随即运动。


首先需要安装一些第三方库:

pymouse,pypiwin32,PyQt5

方法:

pip install 库名

安装好后,在pycharm中导入,即可。 


这个程序使用了多线程,在按下开始键时,程序开始运行;在按下停止键的时候,程序停止运行。


下面解释一下程序中的关键代码~

a = m.position()

该指令为获取鼠标当前的位置。

width = GetSystemMetrics(0)

GetSystemMetrics(参数)指令,当参数取0时,即获取屏幕的宽;当参数取1时,即获取屏幕的高。

x = random.randint(0, width)

在屏幕中随即取一个点。

m.move(x, y)

将鼠标移动到坐标为(x, y)的位置。

time.sleep(900)

time库中的sleep指令,参数以为单位,表示休眠时间,可以是浮点是。这里表示鼠标移动时间间隔。


关于PyQt5的指令以及使用,可以参考如下文章中的说明,这里不再赘述啦~

用python编写录音机——GUI控制录音开始与结束(PyQt5)


这个项目中的问题主要都存在在库的引入。

如果报错出现Cannot find reference ‘XXX‘ in ‘_init_.py‘的字样,请阅读一下文章👇

Cannot find reference ‘XXX‘ in ‘_init_.py‘

如果报错出现ModuleNotFoundError: No module named ‘windows‘.的字样,那么需要安装两个库(pyHookpyUserInput):

pyHook安装:到这个网址下载pyHook(pyHook官网)并pip install安装。

pyUserInput安装:pip install pyUserInput。


下面附上代码:

import random
from pymouse.windows import PyMouse
import time
from win32api import GetSystemMetrics
import threading
import sys
from PyQt5.Qt import *
from PyQt5 import QtGui, QtCorerunning = True
def mouse_move():global runningrunning = Truewhile running:m = PyMouse()a = m.position()#获取当前坐标的位置print(a)width = GetSystemMetrics(0)#获取宽height = GetSystemMetrics(1)#获取高#在屏幕中随即取一点x = random.randint(0, width)y = random.randint(0, height)m.move(x, y)#鼠标移动到(x,y)位置a = m.position()print(a)time.sleep(5)def start():threading._start_new_thread(mouse_move, ())def stop():global runningrunning = False#创建应用程序
app = QApplication(sys.argv)
#创建窗口
window = QWidget()
window.setStyleSheet('QWidget{background-color:#FFFF00}')
window.resize(500, 600)btn1 = QPushButton(window)
btn1.setIconSize(QtCore.QSize(25, 25))
btn1.move(50, 50)
btn1.setText("开始")
btn1.clicked.connect(start)btn2 = QPushButton(window)
btn2.setIconSize(QtCore.QSize(25, 25))
btn2.move(150, 50)
btn2.setText("停止")
btn2.clicked.connect(stop)#lable.show()
window.show()
#等待窗口停止
sys.exit(app.exec())


http://www.ppmy.cn/news/394836.html

相关文章

以金融证券、游戏、电商等案例详解SQL强化

SQL强化 SQL执行顺序 --举例: select a.sex,b.city,count(1) as cnt,sum(salary) as sum1 from table1 a join table2 b on a.idb.id where a.nameb.name group by a.sex,b.city having cnt>2 order by a.sex,b.city limit 10--或者是 select distincta.sex,b.ci…

个税专项 http://www.sohu.com/a/284804458_260616?_f=index_news_0

http://www.sohu.com/a/285969725_118392?spmsmpc.home.top-mews2.1.1546393881114TQKNcyN?_findex_news_0 1、赡养老人扣除要满足什么条件? 纳税人赡养一位及以上年满60岁的父母,以及子女均已去世的年满60岁的祖父母、外祖父母的赡养支出,…

【1月比赛合集】41场可报名的数据挖掘奖金赛,任君挑选!

CompHub 实时聚合多平台的数据类(Kaggle、天池…)和OJ类(Leetcode、牛客…)比赛。本账号同时会推送最新的比赛消息,欢迎关注! 更多比赛信息见 CompHub主页 或 点击文末阅读原文 以下信息仅供参考,以比赛官网为准 目录 Kaggle&…

Python数据分析及可视化之Pyecharts可视化1

主要是基于web浏览器进行显示,可以绘制折线图,柱状图,饼图,漏斗图,,地图,极坐标图。 首安需要在pycharm上安装相应库 一、pyecharts常用图表 1、柱状图--Bar from pyecharts.charts import B…

c++介绍与入门基础(详细总结)

前言 关于学c有一个很有意思的段子,网传学c只需要21天即可,前面10天学了c基础,然后到21天还在学习对象,接口,多态。然后学着学着就两年了,两年后开始可以大量编写代码,然后与相关程序员侃侃而谈…

JNI学习笔记——(二)Native操作Java对象

注:编码工具是Android Studio。 目录 Native打印Java传入的String Native接收Java传入的基本类型数组打印并修改 Native遍历打印Java传入的引用类型数组 Native通过jclass创建Java类的对象 局部引用和全局引用 定义在函数外面的引用造成的crash 用全局引用解…

互联网晚报 | 06月01日 星期三 |老乡鸡董事长回应员工参保率;符合要求乘用车车辆购置税减半征收;传​iOS15.5偷跑流量...

老乡鸡董事长束从轩:员工实际参保率达到93.75% 5月31日下午,针对媒体质疑“老乡鸡大量员工未缴纳社保”等问题,老乡鸡董事长束从轩发布视频回应称,截至2021年底,老乡鸡员工的实际参保率达到93.75%,社保实际…

Flink 灵魂两百问,这谁顶得住?

两百问一点都不夸张,这才光知识星球从创建到现在的问题总数,另外还有多个微信群的答疑解惑。有时候忍不住想给自己点个赞,咋能这么?呢? 麻烦路过的各位亲给这个项目点个 star,太不易了,写了这么多&#xf…