我试图通过按退出键退出循环,但我的程序不起作用。有没有办法做到这一点? 我的代码:
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
答案 0 :(得分:3)
我不清楚你在代码中使用的两个while True
循环要完成什么 - 所以我删除了其中一个,认为这可能符合你的要求:
import msvcrt
import win32api
import win32con
import time
def readch():
""" Get a single character on Windows.
see http://msdn.microsoft.com/en-us/library/078sfkak
"""
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 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)
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')