为何应优先使用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
相关产品推荐
相关产品推荐

