尝试进行游标锁定,但由于未知原因无法正常工作

Trying to make a cursor lock, not working for unknown reasons

请帮助我,没有错误,只是在我按 H 后按 N 时不会调用 setDisabled。 如果有人知道如何改进或修复,请提供帮助。 代码:

import pyautogui
import keyboard

pyautogui.FAILSAFE = False

enabled = False

def setDisabled(a):
    global enabled
    print 'setDisabled: ' + str(enabled)
    enabled = False
    print 'setDisabled: ' + str(enabled)
    resetMouse()

keyboard.on_release_key('n', setDisabled)

def resetMouse():
    global enabled
    print 'resetMouse: ' + str(enabled)
    if enabled is True:
        pyautogui.moveTo(1, 1, 0)
        resetMouse()
    else:
        print "no"

def setEnabled(a):
    global enabled
    print 'setEnabled: ' + str(enabled)
    enabled = True
    print 'setEnabled: ' + str(enabled)
    resetMouse()

keyboard.on_release_key('h', setEnabled)

resetMouse()

当你按 h 然后 keyboard 运行s resetMouse 再次 运行s resetMouse 然后它 运行 s 又是 resetMouse 所以这个函数永远不会结束 - 你有递归 - 它永远不会回到 keyboard 并且它无法检查其他键。

您必须以不同的方式 运行 resetMouse - 即。你可以 运行 它在循环中保持程序 运行ning。 resetMouse 不应该再 运行 resetMouse 但这个循环应该 运行.

import pyautogui
import keyboard
import time

# --- functions ---    

def setDisabled(a):
    global enabled

    print('setDisabled: ' + str(enabled))
    enabled = False
    print('setDisabled: ' + str(enabled))

    #resetMouse()

def setEnabled(a):
    global enabled

    print('setEnabled: ' + str(enabled))
    enabled = True
    print('setEnabled: ' + str(enabled))

    #resetMouse()

def resetMouse():
    global enabled

    #print('resetMouse: ' + str(enabled))
    if enabled: # is True:
        pyautogui.moveTo(1, 1, 0)
    #else:
    #    print("no")

# --- main ---

pyautogui.FAILSAFE = False

enabled = False

keyboard.on_release_key('n', setDisabled)
keyboard.on_release_key('h', setEnabled)

while True:
    #time.sleep(1) # to use less CPU 
    resetMouse()