>>>>起因
最近需要在公司用FTP下载一个不到10G的文件,下载速度也就100多KB。但电脑被设置了5分钟后自动休眠。休眠后,FTP就会暂停下载,虽然FTP可以设置断点续传,但我也不能守着电脑几十个小时。
>>>>方法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 = 10
18 pix = 10
19 maxDelay = 1000
20 click=1
21 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))
32
33 print('每次延迟 %d 秒' % delay)
34 print('每次移动 %d 像素' % pix)
35 print('将保持 %d 秒电脑不休眠' % maxDelay)
36 if click :
37 print('每次移动鼠标后,进行鼠标左键点击')
38 else:
39 print('每次移动鼠标后,不进行鼠标左键点击')
40
41 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()
56
57
58
59if __name__ == '__main__':
60 work()
代码的思路是:
- 第一次运行程序时,会产生一个keepWorking.txt 文件,可以修改这个文件中的变量。如果检测到已经存在这个文件,则读取文件中的配置。
- 等待delay 秒后,让鼠标水平跳动pix 个像素,再等待delay 秒后,再跳回去。
- 到达maxDelay 秒时,程序退出,不再模拟操作鼠标。
- click =1 表示鼠标移动后,是否模拟左击操作。设置为0可能起不到防止休眠的作用。
最后使用的是第二种方法,确实电脑一天一夜没有息屏,但FTP下载了一半不知道什么原因断了,没再重连。OMG~~
>>>>分享
我把这个脚本打包成exe文件,方便某些小伙伴使用。
私信小编001获取全部案例!