规定时间移动鼠标

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

所以就用空闲时间写了一个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, QtCore


running = True
def mouse_move():
    global running
    running = True
    while 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 running
    running = 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())

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值