微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决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 举报,一经查实,本站将立刻删除。