python 等待鼠标点击_Python | 防止电脑休眠

> > > >

起因

最近需要在公司用FTP下载一个不到10G的文件,下载速度也就100多KB。但电脑被设置了5分钟后自动休眠。休眠后,FTP就会暂停下载,虽然FTP可以设置断点续传,但我也不能守着电脑几十个小时。

> > > >

方法1--物理外挂

具体实现如下图,实现原理为:让电机和鼠标绑在一起,当电机转动时会导致鼠标震动,让电脑认为一直有人在操作鼠标。嘎嘎。

缺点就是这东西转起来太吵,我怕别人给我扔垃圾桶里。

python 等待鼠标点击_Python | 防止电脑休眠_第1张图片

> > > >

方法2---软件外挂

用python模拟鼠标操作,间隔一定时间模拟操作一次鼠标,防止系统休眠。

代码如下:

 1import time 2import re,os 3from pymouse import PyMouse 4 5m = PyMouse() 6 7initText=['delay=10\n','pix=10\n','maxDelay=1000\n','click=1'] 8def work(): 9    if not os.path.exists('keepWorking.txt'):10        fo = open('keepWorking.txt','w')11        fo.writelines(initText)12        fo.close()13        print('请根据需要修改《keepWorking.txt》配置文件')14    fi = open('keepWorking.txt','r')15    lines = fi.readlines()16    fi.close()17    delay = 1018    pix = 1019    maxDelay = 100020    click=121    for line in lines:22        tmpRE = re.match('(\w+)=(\d+)',line)23        if tmpRE:24            if tmpRE.group(1) == 'delay':25                delay = int(tmpRE.group(2))26            if tmpRE.group(1) == 'pix':27                pix = int(tmpRE.group(2))28            if tmpRE.group(1) == 'maxDelay':29                maxDelay = int(tmpRE.group(2))30            if tmpRE.group(1) == 'click':31                click = int(tmpRE.group(2))3233    print('每次延迟 %d 秒' % delay)34    print('每次移动 %d 像素' % pix)35    print('将保持 %d 秒电脑不休眠' % maxDelay)36    if click :37        print('每次移动鼠标后,进行鼠标左键点击')38    else:39        print('每次移动鼠标后,不进行鼠标左键点击')4041    for i in range(int(maxDelay/delay)):42        time.sleep(delay)43        if i%2 == 0:44            (x_init,y_init) = m.position()45            m.move(x_init+pix,y_init)46            if click:47                m.click(x_init+pix,y_init)48        if i%2 == 1:49            (x_init,y_init) = m.position()50            m.move(x_init-pix,y_init)51            if click:52                m.click(x_init-pix,y_init)53        #print(m.position())54    print('%d 秒保持电脑不休眠结束,谢谢使用!' % maxDelay)55    exit()56575859if __name__ == '__main__':60    work()

代码的思路是:

  1. 第一次运行程序时,会产生一个keepWorking.txt 文件,可以修改这个文件中的变量。如果检测到已经存在这个文件,则读取文件中的配置。

  2. 等待delay 秒后,让鼠标水平跳动pix 个像素,再等待delay 秒后,再跳回去。

  3. 到达maxDelay 秒时,程序退出,不再模拟操作鼠标。

  4.  click =1 表示鼠标移动后,是否模拟左击操作。设置为0可能起不到防止休眠的作用。

最后使用的是第二种方法,确实电脑一天一夜没有息屏,但FTP下载了一半不知道什么原因断了,没再重连。OMG~~

> > > >

分享

我把这个脚本打包成exe文件,方便某些小伙伴使用。

在公众号中发送: 每日一帖

即可获取本脚本和打包后的exe程序。

你可能感兴趣的:(python,等待鼠标点击)