Skip to main content
 首页 » 编程设计

python之为没有 GUI 的 python 程序制作键盘命令

2025年05月04日24webabcd

我想创建一个键盘命令,这样程序将在按下 Ctrl 键、“e”键、“x”键、“i”和“t”键时停止运行。所以基本上当程序运行时,如果您键入 Ctrl + exit,程序将停止运行。没有 GUI,我不想通过 python 解释器来执行此操作。

最终目标是在键入 Ctrl + exit 命令时关闭程序,而不管其他程序处于焦点状态。这个程序将是一个轻量级的键盘记录器,所以拥有一个 GUI 是没有意义的。

请您参考如下方法:

使用简单的 FSM在您记录收到的 key 时用于“退出逻辑”,例如:

FINAL_STATE = 9999 
transitions = {(None, 'e'): 1, (1, 'x'): 2, (2, 'i'): 3, (3, 't'): FINAL_STATE} 
 
def keylogger_logic(filename, get_next_keystroke, fsm_state=None): 
    with open(filename, 'w') as f: 
        k = get_next_keystroke() 
        f.write(k) 
        f.flush() 
        fsm_state = transitions.get((fsm_state, k)) 
        if fsm_state == FINAL_STATE: break 

这假设您有或编写了一个函数,它以字符串形式返回“下一次击键”,并将其作为第二个参数传递给 keylogger_logic(我会这样做,不是 通过将 key-getter 功能与此逻辑一起硬编码,作为依赖注入(inject)模式的应用,使单元测试变得非常容易;类似地,将 fsm_state 作为参数,即,使其可由调用者设置——简化测试)。如果您希望“获取下一次击键”函数返回字符串以外的内容,则很容易调整(您只需修复 f.write 和 transitions 表格)。