<p>对于那些在windows上努力寻找工作答案的人,这里是我的:<a href="https://pythonhosted.org/pynput/" rel="noreferrer">pynput</a></p>
<pre><code>from pynput.keyboard import Key, Listener
def on_press(key):
print('{0} pressed'.format(
key))
def on_release(key):
print('{0} release'.format(
key))
if key == Key.esc:
# Stop listener
return False
# Collect events until released
with Listener(
on_press=on_press,
on_release=on_release) as listener:
listener.join()
</code></pre>
<p>上述功能将打印您正在按下的任何键,并在释放“esc”键时启动操作。键盘文档是<a href="https://pythonhosted.org/pynput/keyboard.html" rel="noreferrer">here</a>,以便更灵活地使用</p>
<p><a href="https://stackoverflow.com/users/1149282/markus-von-broady">Markus von Broady</a>突出显示了一个潜在的问题,即:此答案不要求您处于当前窗口中才能激活此脚本,windows的解决方案是:</p>
<pre><code>from win32gui import GetWindowText, GetForegroundWindow
current_window = (GetWindowText(GetForegroundWindow()))
desired_window_name = "Stopwatch" #Whatever the name of your window should be
#Infinite loops are dangerous.
while True: #Don't rely on this line of code too much and make sure to adapt this to your project.
if current_window == desired_window_name:
with Listener(
on_press=on_press,
on_release=on_release) as listener:
listener.join()
</code></pre>