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

为何应优先使用SendInput而非mouse与keybd_event事件?

keybd_event 与 SendInput:使用对比与疑问

在查阅keybd_event的官方文档时,看到明确提示:

注意:此函数已被取代,请改用SendInput。

但实际研究SendInput的实现后发现,尽管它支持同时处理鼠标和键盘操作,但实现复杂度高了不少,完全看不出改用它的明显收益。

以按下Ctrl键的最简实现为例:

用keybd_event实现

windll.user32.keybd_event(0x11, 0, 0, 0)

用SendInput实现

lib = WinDLL('user32')
lib.SendInput.argtypes = w.UINT,POINTER(INPUT),c_int
lib.SendInput.restype = w.UINT
i = INPUT()
i.type = INPUT_KEYBOARD
i.ki = KEYBDINPUT(0,0x11,0,0,0)
lib.SendInput(1,byref(i),sizeof(INPUT))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 12:20:55