VB6: API如何发送键盘事件
发布时间:2020-12-16 22:21:08 所属栏目:大数据 来源:网络整理
导读:Windows的键盘事件被分解成: KeyDown + KeyUp,按键按顺序分别发送 如: Ctrl + Delete按键事件,在Windows中响应为 KeyDown + Control KeyDown + Delete KeyUp + Delete KeyUp + Control 下面的示例,显示了如何向指定窗口发送Ctrl + Del事件 Option ExplicitPu
Windows的键盘事件被分解成: KeyDown + KeyUp,按键按顺序分别发送
Option Explicit Public Declare Function PostMessage Lib "user32" Alias "PostMessageA" (ByVal hWnd As Long,ByVal wMsg As Long,ByVal wParam As Long,ByVal lParam As Long) As Long Public Const WM_KEYUP = &H101 Public Const WM_KEYDOWN = &H100 Public Const VK_CONTROL = &H11 Public Const VK_DELETE = &H2E Public Sub Main() Dim hWnd As Long hWnd = 1836342 '' 这是我的测试窗口 APISendKeys hWnd,Array(VK_CONTROL,VK_DELETE) End Sub '' 使用API将一个或多个按键消息发送到活动窗口(将按键事件分解成基本元素) Public Sub APISendKeys(ByVal hWnd As Long,ByRef aKeys As Variant) Dim i As Long Dim nUBound As Long nUBound = SafeUBound(aKeys) If nUBound < 0 Then Exit Sub For i = 0 To nUBound If Not IsNumeric(aKeys(i)) Then Exit Sub If aKeys(i) < 0 Then Exit Sub Next 'i '' 逐元素发送 For i = 0 To nUBound PostMessage hWnd,WM_KEYDOWN,aKeys(i),0 Next 'i For i = nUBound To 0 Step -1 PostMessage hWnd,WM_KEYUP,0 Next 'i End Sub '' 安全UBound Public Function SafeUBound(ByRef aArray As Variant) On Error GoTo label_error: SafeUBound = UBound(aArray) Exit Function label_error: SafeUBound = -1 End Function (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |