You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用pynput或其他Python库模拟小键盘输入Alt代码?

解决Alt代码输入时模拟小键盘数字的问题

Windows系统的Alt代码输入要求必须使用小键盘数字键,而你当前代码中直接按下'0'-'9'触发的是主键盘区域的数字键,因此无法生效。以下是两种可行的解决方法:

方法一:使用pynput的小键盘键位

pynput的Key类提供了专门的小键盘数字键常量(Key.kp0到Key.kp9),我们可以通过字符映射替换原来的主键盘数字按键逻辑:

from pynput.keyboard import Key, Controller
import time

keyb = Controller()

# 主键盘数字到小键盘键位的映射
num_to_kp = {
    '0': Key.kp0,
    '1': Key.kp1,
    '2': Key.kp2,
    '3': Key.kp3,
    '4': Key.kp4,
    '5': Key.kp5,
    '6': Key.kp6,
    '7': Key.kp7,
    '8': Key.kp8,
    '9': Key.kp9
}

def alt_codes(start, finish):  
    # 确保Num Lock处于开启状态(可选,根据实际情况调整)
    if not keyb.is_pressed(Key.num_lock):
        keyb.press(Key.num_lock)
        keyb.release(Key.num_lock)
        time.sleep(0.01)
    
    for i in range(start, finish + 1):
        keyb.press(Key.alt)
        time.sleep(0.01)
        # 遍历数字的每一位,按下对应的小键盘键
        for j in str(i):
            kp_key = num_to_kp[j]
            keyb.press(kp_key)
            time.sleep(0.01)
            keyb.release(kp_key)
            time.sleep(0.01)
        keyb.release(Key.alt)
        time.sleep(0.01)
        keyb.press(Key.space)
        time.sleep(0.01)
        keyb.release(Key.space)

方法二:使用pyautogui库(更简洁)

pyautogui对小键盘输入的支持更直观,无需手动映射键位,直接通过'num0'-'num9'指定小键盘数字:

首先安装库:

pip install pyautogui

然后编写代码:

import pyautogui
import time

def alt_codes(start, finish):
    # 确保Num Lock开启
    if not pyautogui.numLock:
        pyautogui.press('numlock')
        time.sleep(0.01)
    
    for i in range(start, finish + 1):
        # 按住Alt键
        pyautogui.keyDown('alt')
        time.sleep(0.01)
        # 依次按下小键盘数字
        for num_char in str(i):
            pyautogui.press(f'num{num_char}')
            time.sleep(0.01)
        # 松开Alt键
        pyautogui.keyUp('alt')
        time.sleep(0.01)
        pyautogui.press('space')
        time.sleep(0.01)

注意事项

  • 两种方法都需要确保Num Lock处于开启状态,否则小键盘数字会触发方向键/功能键,导致输入失败。代码中已加入自动检测并开启Num Lock的逻辑。
  • 调整time.sleep的时长时,要保证系统有足够时间响应按键操作,避免因速度过快导致输入错误。

内容的提问来源于stack exchange,提问作者arachnoden

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 14:52:18