我有一个脚本,可以按一定的间隔移动鼠标并刷新页面(按 f5)。我希望能够暂停脚本(以便在移动鼠标和刷新页面之前倒计时的计时器通过按某个键或组合键被冻结),并且还能够通过按快速关闭它Ctrl + Shift + Alt + s。
import random
import pyautogui as pg
from time import sleep
import os
import signal
import keyboard
import multiprocessing as mp
# процесс убийства приложения
def hook(pid):
while True:
if keyboard.is_pressed('ctrl + shift + alt + s'):
os.kill(pid,signal.SIGTERM)
os._exit(1)
def pause():
while True:
if keyboard.is_pressed("ctrl + shift + alt + p"):
print('Скрипт приостановлен, нажмите p для продолжения')
keyboard.wait('p')
print("Скрипт продолжается...")
continue
if __name__ == '__main__':
pid = os.getpid()
mp.Process(target=hook,args=[pid]).start()
# случайные движения мышкой + перезагрузка страницы
while True:
mp.Process(target=pause).start()
a, b, c = random.randint(500,1000), random.randint(300,600), random.randint(1, 5)
try:
sleep(10)
pg.moveTo(a, b, c)
sleep(40)
pg.press('f5')
except KeyboardInterrupt:
break
我尝试pause使用不同的方法(等待输入keyboard.wait等)创建一个单独的函数,但脚本要么损坏,要么没有停止。
可以通过
threading. 例如这样:添加:
你只能通过一个标志(循环迭代的完成)自己停止它
thread,但如果你需要“杀死”它,然后使用它multiprocessing,它有一个方法.terminate()。