鱼C论坛

 找回密码
 立即注册
查看: 1690|回复: 4

[已解决]Python捕捉键盘事件

[复制链接]
发表于 2023-6-30 13:07:52 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
搜到的:传送门

但问题在于,我并不想等待用户按下某个键,我想知道用户按下了某个键
另外我是想编写一个python 命令行程序,就是在终端里输出的,我还想知道用户是否选中终端窗口
最佳答案
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对于这样的操作可能不是最好的工具,因为它通常更适合于应用程序级别的任务,而不是系统级别的任务。

另外要注意的是,监听全局键盘事件可能会引发隐私和安全问题,确保你遵守了所有相关的法律和规定。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2023-6-30 14:06:07 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 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对于这样的操作可能不是最好的工具,因为它通常更适合于应用程序级别的任务,而不是系统级别的任务。

另外要注意的是,监听全局键盘事件可能会引发隐私和安全问题,确保你遵守了所有相关的法律和规定。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

选择终端窗口的问题,既然无法检测,那么可否设置仅在终端窗口被选择时才监听键盘事件呢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

已解决
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-9-22 15:41

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表