Python 按退出键退出循环
我试图通过按退出键退出循环,但我的程序不工作。有办法吗? 我的代码:Python 按退出键退出循环,python,python-3.x,windows,pywin32,msvcrt,Python,Python 3.x,Windows,Pywin32,Msvcrt,我试图通过按退出键退出循环,但我的程序不工作。有办法吗? 我的代码: import win32api import win32con import time from msvcrt import kbhit,getch def clickerleft(x,y): """Clicks on given position x,y Input: x -- Horizontal position in pixels, starts from top-left position
import win32api
import win32con
import time
from msvcrt import kbhit,getch
def clickerleft(x,y):
"""Clicks on given position x,y
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)
def fonctionclic():
while True :
clickerleft(1193,757)
time.sleep(0.1)
while True :
key = ord(getch())
if key == 97: #a
fonctionclic()
elif key == 27: #escap
break
我不清楚您试图用这两个
实现什么,而True:
循环是您代码中的循环,因此我删除了其中一个循环,认为这可能符合您的要求:
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')
谢谢你的回答,但是我如何在我的点击功能中使用while循环。请参阅更新的答案。注意,在我的系统上,模拟的点击将焦点从我用来运行脚本的控制台窗口移开。