歌者文明清理员 发表于 2023-6-30 13:07:52

Python捕捉键盘事件

搜到的:传送门

但问题在于,我并不想等待用户按下某个键,我想知道用户按下了某个键
另外我是想编写一个python 命令行程序,就是在终端里输出的,我还想知道用户是否选中终端窗口

歌者文明清理员 发表于 2023-6-30 14:06:07

@sfqxx @isdkz

isdkz 发表于 2023-6-30 14:29:52

要在Python中检测键盘事件,你需要使用库来帮助你。有许多可以用来捕获键盘事件的库,例如 pynput 、 keyboard 等。

如果你不希望阻塞程序直到用户按下键,可以使用 keyboard 库的 add_hotkey 方法设置一个回调函数。以下是一个例子:

import keyboard

def print_key_event(e):
    print('You pressed: ', e.name)

keyboard.on_press(print_key_event)
keyboard.wait()


在上述例子中, keyboard.on_press() 函数注册了一个回调函数,该函数在每次键按下时被调用。 keyboard.wait() 则使得程序一直运行,直到你决定停止它。

然而,你提到的另一个问题是检测用户是否选中了终端窗口,这是一个更复杂的问题。这通常需要你使用与操作系统交互的库(例如 pywin32 在Windows上, pyobjc 在macOS上),并且方法会根据你使用的操作系统而变化。一般来说,Python对于这样的操作可能不是最好的工具,因为它通常更适合于应用程序级别的任务,而不是系统级别的任务。

另外要注意的是,监听全局键盘事件可能会引发隐私和安全问题,确保你遵守了所有相关的法律和规定。

歌者文明清理员 发表于 2023-6-30 14:59:41

isdkz 发表于 2023-6-30 14:29
要在Python中检测键盘事件,你需要使用库来帮助你。有许多可以用来捕获键盘事件的库,例如 pynput 、 keybo ...

选择终端窗口的问题,既然无法检测,那么可否设置仅在终端窗口被选择时才监听键盘事件呢

歌者文明清理员 发表于 2023-6-30 15:47:37

歌者文明清理员 发表于 2023-6-30 14:59
选择终端窗口的问题,既然无法检测,那么可否设置仅在终端窗口被选择时才监听键盘事件呢

已解决
页: [1]
查看完整版本: Python捕捉键盘事件