Skip to main content
 首页 » 编程设计

Python Alt Hook

2025年05月04日15sxdcgaq8080

我在写这个类型记录程序的时候遇到了一个问题——Alt 键没有 Ascii 数字,所以我不能以常规方式 Hook 它。 这是我没有 Alt Hook 尝试的源代码,问题是 - 我如何 Hook Alt? 我知道有一个名为“Alt”的类变量和一个名为“IsAlt”的内置函数,但我不知道如何使用它们。

import pythoncom,pyHook 
 
log = "" 
logpath = "log.txt" 
 
openfile = open(logpath,"w") 
openfile.write("") 
 
def OnKeyboardEvent(event): 
    try: 
        global log 
        if event.Ascii == 8: 
            log = "[BS]" 
        elif event.Ascii == 9: 
            log = "[TAB]" 
        elif event.Ascii == 13: 
            log = "[NL]" 
        elif event.Ascii == 27: 
            log = "[ESC]" 
        elif event.Ascii == 15: 
            openfile.close() 
            exit() 
        else: 
            log = chr(event.Ascii) 
        openfile.write(log) 
    except: 
        pass 
 
hm = pyHook.HookManager() 
hm.KeyDown = OnKeyboardEvent 
hm.HookKeyboard() 
pythoncom.PumpMessages() 

请您参考如下方法:

在映射键时不使用 event.Ascii,而是使用 event.KeyID。

请注意,像 AltGr 这样的键有 2 个映射 ID:一个用于按下的键,另一个用于释放的键。