Skip to content Skip to sidebar Skip to footer

Exiting A Loop By Pressing A Escape Key

I am trying to exit a loop by pressing a escape key but my program doesn't work. Is there a way to do that? My code : import win32api import win32con import time from msvcrt import

Solution 1:

It's not clear to me what you're trying to accomplish with the two while True: loops you have in your code, so I removed one of them thinking perhaps this does what you want:

import msvcrt
import win32api
import win32con
import time

def readch():
    """ Get a single character on Windows.

    see https://docs.microsoft.com/en-us/cpp/c-runtime-library/reference/getch-getwch?view=vs-2019
    """
    ch = msvcrt.getch()
    if ch in b'\x00\xe0':  # Arrow or function key prefix?
        ch = msvcrt.getch()  # Second call returns the actual key code.
    return ch

def clickerleft(x, y):
    """ Clicks on given x, y position.

    Input:
      x -- Horizontal position in pixels, starts from top-left position
      y -- Vertical position in pixels, start from top-left position
    """
    win32api.SetCursorPos((x, y))
    win32api.mouse_event(win32con.MOUSEEVENTF_LEFTDOWN, x, y, 0, 0)
    win32api.mouse_event(win32con.MOUSEEVENTF_LEFTUP, x, y, 0, 0)

print('Press Esc to quit or "a" to simulate mouse click')
while True:
    if msvcrt.kbhit():
        key = ord(readch())
        if key == 97:  # ord('a')
            clickerleft(1193,757)
        elif key == 27:  # Escape key?
            break
    time.sleep(0.1)
print('Done')

Post a Comment for "Exiting A Loop By Pressing A Escape Key"