VB 通过 user32 模拟击键

VB Simulate keystrokes via user32

我想像鼠标点击一样模拟击键,我偶然在网上找到了一些示例代码。

声明

Public Const MOUSEEVENTF_LEFTDOWN = &H2
Public Const MOUSEEVENTF_LEFTUP = &H4

Declare Function apimouse_event Lib "user32.dll" Alias "mouse_event" (ByVal dwFlags As Int32, ByVal dX As Int32, ByVal dY As Int32, ByVal cButtons As Int32, ByVal dwExtraInfo As Int32) As Boolean

模拟鼠标点击

Call apimouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0)
Call apimouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0)

以上代码即使在directx应用中也可以模拟鼠标点击。是否也有类似的方法来模拟击键?如果你能解释一下上面的代码是做什么的就太好了,因为我不太明白。

自然地,您可以使用 "keyboard events." 而不是使用 "mouse event" 消息。请查看 the keybd_event page at pinvoke.net 中的一些示例。

请记住,这些从字面上模拟用户在键盘上敲击按键,因此它们总是发送到具有焦点的控件 ('foreground')。如果您需要将特定的击键发送到隐藏或背景 windows,您正在寻找的是 SendMessage 相关函数。