我正在制作一个每小时更改我的壁纸的python程序,但我希望能够在按下某个按钮时更改壁纸。
这是我试过的代码
while True:
key = ord(getch())
但唯一不好的部分是它会被卡住,直到我按下某个东西。有更好的方法吗?
答案 0 :(得分:0)
您可以使用https://pypi.python.org/pypi/pynput来实现您的目标。
另请参阅有关pythonhosted http://pythonhosted.org/pynput/的文档,尤其是关于监控键盘http://pythonhosted.org/pynput/keyboard.html#monitoring-the-keyboard的部分。
以下是文档中的示例:
from pynput.keyboard import Key
from pynput.keyboard import 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()
它将打印您按下的每个键,直到您按 ESC ,之后它将终止。
请注意,有一些特定于操作系统的事情需要考虑,例如在 OSX 上,该进程必须以root身份运行。
答案 1 :(得分:0)
我不小心意外地发现了这一点。
import msvcrt
if msvcrt.kbhit():
Key = ord(getch())
if Key ==96:
#Do something here
这似乎有效。我认为msvcrt.kbhit()正在等待按键。 Key = ord(getch())接受按键,如果Key == 96:检查它是否是正确的按键