import random
import pyautogui as pg
from time import sleep
import os
import keyboard
import signal
import multiprocessing as mp
flag = True # Флаг состояния потока moveTo_pressF5_thread
# Функция для убийства приложения
def hook(pid):
while True:
if keyboard.is_pressed('ctrl + shift + alt + s'):
os.kill(pid,signal.SIGTERM)
os._exit(1)
# Функция для случайных движений мышкой и перезагрузки страницы
def moveTo_pressF5():
global flag
while flag:
a, b, c = random.randint(500,1000), random.randint(300,600), random.randint(1, 5)
sleep(10)
pg.moveTo(a, b, c)
sleep(40)
pg.press('f5')
if __name__ == '__main__':
pid = os.getpid()
exit_process = mp.Process(target=hook,args=[pid]) # завершение программы
exit_process.start()
pause = mp.Process(target=moveTo_pressF5) # процесс движения мышкой и обновления
pause.start()
while True:
if keyboard.is_pressed("ctrl + shift + alt + p"):
flag = False
os.system('cls' if os.name == 'nt' else 'clear') # очистка терминала от сообщений про скрипт
print('Скрипт приостановлен, нажмите ctrl + alt + p для продолжения')
pause.terminate()
keyboard.wait('ctrl + alt + p')
flag = True
print("Скрипт продолжается...")
pause = mp.Process(target=moveTo_pressF5) # процесс движения мышкой и нажатия ф5
pause.start()
正如标题中所写,当您在 IDE 外部运行脚本时(通过 python 运行时),脚本将停止正常工作。暂停功能似乎有效,但如果在一开始(一秒钟,可能是启动后两秒钟)您按组合键关闭脚本(ctrl + shift + alt + s),那么什么也不会发生。同时,脚本本身看起来并不是很重,但却消耗了100%的处理器。
让我们尝试简化一下: