wiki.php 用Markdown写wiki是一种什么样的体验?

发送键盘消息.md

最后更新于 2019-10-06 15:00:28

之前我在某个程序中需要改写其他程序的键盘按键的功能,采用的是 ==SendMessage== 这个系统API。
但是这个API无法发送方向键的数据,一直搞不懂原理。
之后就改用了 ==keybd_event== 这个API,可以正常发送方向键的数据。
留一个文档备份。

声明


Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As keyFlags, ByVal dwExtraInfo As UInteger)

Public Enum keyFlags
    KeyDown = 0
    EXTENDEDKEY = 1
    KeyUp = 2
End Enum

调用方法
其中 bVk 参数可以通过.NET的 ==Keys== 枚举类型直接转换过来,但是必须要将其转换为 Byte 单字节才可以。

Dim b As Byte = CByte(Keys.W)
keybd_event(b, 0, keyFlags.KeyDown, 0)
keybd_event(b, 0, keyFlags.KeyUp, 0)