Please help me, there is no errors the setDisabled is just not called whenever I press N after pressing H. If anyone knows how to improve or fix, please help. Code:
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()
When you press h
then keyboard
runs resetMouse
which runs again resetMouse
and it runs again resetMouse
so this functions never ends - you have recursion - and it never go back to keyboard
and it can't check other keys.
You would have to run resetMouse
in different way - ie. you can run it in loop which keeps program running. And resetMouse
shouldn't run again resetMouse
but this loop should run.
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()