Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/341.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在python中使用故障保护命令_Python - Fatal编程技术网

如何在python中使用故障保护命令

如何在python中使用故障保护命令,python,Python,所以我正在尝试制作一个程序,在python中随机地将鼠标放在特定区域,我还在测试它,所以它可能会变得有点疯狂。我想知道,如果输入了密钥或命令,是否可以发出一个故障保护命令来终止程序 由于程序在我的计算机上的另一个窗口上点击和移动,它取消选择python正在运行的窗口,这使得“键盘中断”无法工作 节目如下: import pyautogui import random import time time.sleep(6)#gives you time to click the right windo

所以我正在尝试制作一个程序,在python中随机地将鼠标放在特定区域,我还在测试它,所以它可能会变得有点疯狂。我想知道,如果输入了密钥或命令,是否可以发出一个故障保护命令来终止程序

由于程序在我的计算机上的另一个窗口上点击和移动,它取消选择python正在运行的窗口,这使得“键盘中断”无法工作

节目如下:

import pyautogui
import random
import time
time.sleep(6)#gives you time to click the right window

try:
    while True:    
        x = random.randint(239, 1536)  #randomizes the position of the mouse

        pyautogui.moveTo(x,663)        #moves the mouse to position

        pyautogui.doubleClick()        #fires the gun in game twise   

        time.sleep(1)                  #gives time for the game to 
        pyautogui.doubleClick()        #catch up with the mouse and fires gun

        pyautogui.doubleClick()        #fires gun twice again                                

except KeyboardInterrupt:
    print ('Yup')

如果我的编码方式有什么问题,请告诉我。我对编码还是新手,所以任何提示都会很棒

您希望在异常中使用a

试试这个:

import sys

try:
    # all your code
except KeyboardInterrupt:
    sys.exit()

PyAutoGUI还具有故障保护功能。将鼠标光标移动到左上角 屏幕的错误将导致PyAutoGUI引发PyAutoGUI.FailSafeException 例外

您的程序可以使用try和except语句处理此异常 或者让异常使程序崩溃。无论哪种方式,故障保护功能都将停止 如果您快速地向上和向左移动鼠标,则可编程

>>>import pyautogui
>>>pyautogui.FAILSAFE= True
默认情况下,FAILSAFE为True,您也可以禁用它

>>>pyautogui.FAILSAFE = False

这应该是可行的,只要你点击按键,它就会断开循环,安装模块键盘

pip install keyboard

那么,如果出现键盘Initerrupt异常,您是否希望杀死您的程序?这就是你想做的吗?是的。如果程序变得疯狂,而我无法控制它(这种情况经常发生),我需要一种不用鼠标就能退出的方法。你可以用计数器替换
while True
,并让它循环固定次数。@MalachiBazar你能将鼠标移动限制在当前窗口吗?@shanmuga我不确定,但是pyautogui网站没有具体说明什么。这是一个链接,如果我让pyautogui也执行键盘控件,这仍然有效吗?或者键盘控件是否会触发退出?如果您可以导入键盘会更好…这并不能回答这个问题。一旦你有足够的钱,你将能够;相反虽然这段代码可以解决这个问题,但如何以及为什么解决这个问题将真正有助于提高您的帖子质量,并可能导致更多的投票。请记住,你是在将来回答读者的问题,而不仅仅是现在提问的人。请在回答中添加解释,并说明适用的限制和假设。
if keyboard.is_pressed('q'):
    break