Python:打开/关闭开关立即启动/停止循环

问题描述

import time
import pyautogui
from pyautogui import *
import keyboard
from PIL import ImageGrab 
import os
import win32api,win32con
import cv2
import pyperclip
from pynput.keyboard import Key,Listener
import PyTesseract
 
##1340,182,1777,213
test = 0
 
def alertf1(c):
    global test
 
    while c == 1:
        if keyboard.is_pressed('f1'):  # if key 'f1' is pressed 
            print('f1 has been pressed')
            c = 0
            time.sleep(0.1)
            test = test + 1
            break
        else:
            print('checking if anything is destroyed')
            time.sleep(1)
            if pyautogui.locateOnScreen('destroy2.png',region=(1340,230)):
                print('something got destroyed!')
                time.sleep(0.1)
                pyautogui.keyDown('ctrl')
                time.sleep(0.1)
                pyautogui.keyDown('tab')
                pyautogui.keyUp('ctrl')
                pyautogui.keyUp('tab')
                time.sleep(0.5)
                for char in '@':
                    pyperclip.copy(char)
                    pyautogui.hotkey('ctrl','v',interval=0.1)
                    time.sleep(0.1)
                    pyautogui.write('everyone Enemies/Red Logs! Something has been destroyed.')
                    time.sleep(0.1)
                    pyautogui.press('enter')
                    time.sleep(5)
                    pyautogui.click(x=1860,y=50)
                    time.sleep(5)
            else:
                if keyboard.is_pressed('f1'):  # if key 'f1' is pressed 
                    print('f1 has been pressed')
                    c = 0
                    time.sleep(0.1)
                    test = test + 1
                    break
 
def on_press(key):
    global test
    if test > 0 and key == Key.f1:
        c = 0
    if key == Key.f1 and test == 0:
        print('before alert f1 pressed')
        time.sleep(0.1)
        test = test + 1
        alertf1(1)
    if key == Key.f1 and test > 1:
        test = 0
 
 
 
with Listener(on_press=on_press) as listener:
        listener.join()
 
def main():
    while True:
        time.sleep(0.1)
        print('on press going Now')
        on_press(key)
 
 
if __name__ == '__main__':
    main() 

我的问题是我希望打开/关闭开关使用相同的键 我想不出一种方法来区分我何时按下键和程序只是在循环。

像 F1 将启动功能警报,它将永远循环,直到我按 F1,问题是,if keyboard.is_pressed('f1'): 不是一个好的解决方案 因为如果代码在其他地方它不会识别我按了 f1

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)