我正在尝试做这个问题所问的(这个问题没有有效的答案,使用pynput
的函数代码):Press Windows+D with pynput
.但是,我的尝试并没有像预期的那样工作。
在Linux Ubuntu上,按Windows + d将最小化所有窗口,从而显示桌面。再做一次会把所有的Windows都恢复原样。
下面是我的代码:
import time
from pynput.keyboard import Key, Controller
keyboard = Controller()
SUPER_KEY = Key.cmd
keyboard.press(SUPER_KEY)
# time.sleep(1)
keyboard.press('d')
keyboard.release('d')
keyboard.release(SUPER_KEY)
当我运行它时,我期望Windows + d快捷方式被按下,隐藏所有窗口。相反,只按下Windows键,这会调出程序启动器搜索工具,然后在我的终端中留下一个d
,如下所示:
$ ./pynput_press_Windows+D_to_show_the_desktop.py
$ d
我怎么才能让它工作?
参考文档说(https://pynput.readthedocs.io/en/latest/keyboard.html)Key.cmd
是“Super”或“Windows”键。我也试过Key.cmd_l
和Key.cmd_r
。cmd
= 0
通用命令按钮。在PC平台上,它对应于Super键或Windows键,在Mac上它对应于Command键。这可以是修饰符。cmd_l
= 0
左侧的命令按钮。在PC平台上,它对应于Super键或Windows键,在Mac上它对应于Command键。这可以是修饰符。cmd_r
= 0
右命令按钮。在PC平台上,它对应于Super键或Windows键,在Mac上它对应于Command键。这可以是修饰符。
2023年6月4日更新:键盘监视器测试程序,以确保Key.cmd
+ d
是正确的我的键盘(它是):从www.example.com修改https://pynput.readthedocs.io/en/latest/keyboard.html#monitoring-the-keyboard:
from pynput import keyboard
print("Keyboard monitor demo program. Press Esc to exit.")
def on_press(key):
try:
print('alphanumeric key {0} pressed'.format(
key.char))
except AttributeError:
print('special key {0} pressed'.format(
key))
def on_release(key):
print('{0} released'.format(
key))
if key == keyboard.Key.esc:
# Stop listener
print("Exiting the program.")
return False
# Collect events until released
with keyboard.Listener(
on_press=on_press,
on_release=on_release) as listener:
listener.join()
按Super + D时的输出示例:
$ ./pynput_monitor_keyboard.py
Keyboard monitor demo program. Press Esc to exit.
Key.enter released
special key Key.cmd pressed
alphanumeric key d pressed
'd' released
Key.cmd released
1条答案
按热度按时间ijnw1ujt1#
如果你有一个双语言键盘,一个不同的键盘“快捷键”可能会工作。在我的俄语-英语键盘上,按下俄语“в”起作用了,这在英语布局中是“d”。我通过在键盘上按“win + d”的方式从文档中了解到了这一点。