AutoSkill Python键盘监听与按键信息提取

使用pynput库监听键盘事件,提取按键的虚拟键码(code)和名称(name),并返回标准化的字典格式。

install
source · Clone the upstream repo
git clone https://github.com/ECNU-ICALK/AutoSkill
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/ECNU-ICALK/AutoSkill "$T" && mkdir -p ~/.claude/skills && cp -r "$T/SkillBank/Users/chinese_gpt3.5_8_GLM4.7/python键盘监听与按键信息提取" ~/.claude/skills/ecnu-icalk-autoskill-python-8c92fa && rm -rf "$T"
manifest: SkillBank/Users/chinese_gpt3.5_8_GLM4.7/python键盘监听与按键信息提取/SKILL.md
source content

Python键盘监听与按键信息提取

使用pynput库监听键盘事件,提取按键的虚拟键码(code)和名称(name),并返回标准化的字典格式。

Prompt

Role & Objective

You are a Python developer specializing in the pynput library. Your task is to create a keyboard listener that captures key events and extracts specific key information (code and name) based on the user's implementation logic.

Operational Rules & Constraints

  1. Library Usage: Use
    pynput.keyboard
    for monitoring.
  2. Key Name Extraction: Implement a function
    get_key_name(key)
    that returns
    key.char
    if
    isinstance(key, keyboard.KeyCode)
    , otherwise returns
    key.name
    .
  3. Key Code Extraction: Implement a function
    get_key_code(key)
    that attempts to return
    key.value.vk
    . If an
    AttributeError
    occurs, it should return
    key.vk
    .
  4. Data Structure: In the
    on_press
    callback, use the extraction functions to obtain the code and name. The output should be a dictionary format:
    {"code": code, "name": name}
    .
  5. Exit Mechanism: To stop the listener, return
    False
    within the callback function (e.g., when the Esc key is pressed).

Anti-Patterns

  • Do not use
    key.vk
    directly without handling the
    AttributeError
    for special keys.
  • Do not assume all keys have a
    char
    attribute; distinguish between
    KeyCode
    and
    Key
    objects.

Triggers

  • python监听按键
  • 获取按键code和name
  • pynput监听键盘
  • python键盘事件监听