vb.net keybd_event 全部常用键盘码

1. keybd_event 基本用法(VB.NET)

声明 API

Imports System.Runtime.InteropServices

Public Class KeyboardSimulator
    <DllImport("user32.dll", SetLastError:=True)>
    Public Shared Sub keybd_event(
        bVk As Byte,      ' 虚拟键码(如 &H41 是 "A" 键)
        bScan As Byte,    ' 硬件扫描码(通常填 0)
        dwFlags As UInteger, ' 按下(0) 或释放(&H2)
        dwExtraInfo As IntPtr ' 额外信息(通常填 IntPtr.Zero)
    )
    End Sub

    ' 常用标志
    Public Const KEYEVENTF_KEYDOWN As UInteger = &H0 ' 按下
    Public Const KEYEVENTF_KEYUP As UInteger = &H2   ' 释放
    Public Const KEYEVENTF_EXTENDEDKEY As UInteger = &H1 ' 扩展键(如小键盘的 Enter)
End Class

2. 实际示例

示例 1:按下并释放 A 键

' 按下 A 键
KeyboardSimulator.keybd_event(&H41, 0, KeyboardSimulator.KEYEVENTF_KEYDOWN, IntPtr.Zero)
' 释放 A 键
KeyboardSimulator.keybd_event(&H41, 0, KeyboardSimulator.KEYEVENTF_KEYUP, IntPtr.Zero)

示例 2:模拟组合键 Ctrl + C(复制操作)

' 按下 Ctrl
KeyboardSimulator.keybd_event(&H11, 0, KeyboardSimulator.KEYEVENTF_KEYDOWN, IntPtr.Zero)
' 按下 C
KeyboardSimulator.keybd_event(&H43, 0, KeyboardSimulator.KEYEVENTF_KEYDOWN, IntPtr.Zero)
' 释放 C
KeyboardSimulator.keybd_event(&H43, 0, KeyboardSimulator.KEYEVENTF_KEYUP, IntPtr.Zero)
' 释放 Ctrl
KeyboardSimulator.keybd_event(&H11, 0, KeyboardSimulator.KEYEVENTF_KEYUP, IntPtr.Zero)

示例 3:按住 Shift 并输入 A(输出大写 A)

' 按下 Shift
KeyboardSimulator.keybd_event(&H10, 0, KeyboardSimulator.KEYEVENTF_KEYDOWN, IntPtr.Zero)
' 按下 A
KeyboardSimulator.keybd_event(&H41, 0, KeyboardSimulator.KEYEVENTF_KEYDOWN, IntPtr.Zero)
' 释放 A
KeyboardSimulator.keybd_event(&H41, 0, KeyboardSimulator.KEYEVENTF_KEYUP, IntPtr.Zero)
' 释放 Shift
KeyboardSimulator.keybd_event(&H10, 0, KeyboardSimulator.KEYEVENTF_KEYUP, IntPtr.Zero)

示例 4:模拟方向键(如右箭头 →)

' 按下右箭头 →
KeyboardSimulator.keybd_event(&H27, 0, KeyboardSimulator.KEYEVENTF_KEYDOWN, IntPtr.Zero)
' 释放右箭头 →
KeyboardSimulator.keybd_event(&H27, 0, KeyboardSimulator.KEYEVENTF_KEYUP, IntPtr.Zero)

3. 常用虚拟键码(Virtual-Key Codes)

键名十六进制十进制说明
AZ&H41&H5A65–90字母键 A–Z
09&H30&H3948–57数字键 0–9
F1F24&H70&H87112–135功能键 F1–F24
Backspace&H088退格键
Tab&H099Tab 键
Enter&H0D13回车键
Shift&H1016Shift 键
Ctrl&H1117Ctrl 键
Alt&H1218Alt 键
Caps Lock&H1420大写锁定键
Esc&H1B27Esc 键
Space&H2032空格键
Page Up&H2133Page Up
Page Down&H2234Page Down
End&H2335End 键
Home&H2436Home 键
 (左箭头)&H2537左方向键
 (上箭头)&H2638上方向键
 (右箭头)&H2739右方向键
 (下箭头)&H2840下方向键
Print Screen&H2C44打印屏幕键
Insert&H2D45Insert 键
Delete&H2E46Delete 键
Num Lock&H90144小键盘锁定键
Scroll Lock&H91145滚动锁定键
音量+&HAF175增加音量
音量-&HAE174减小音量

键名十六进制十进制说明
A&H4165字母 A
B&H4266字母 B
C&H4367字母 C
D&H4468字母 D
E&H4569字母 E
F&H4670字母 F
G&H4771字母 G
H&H4872字母 H
I&H4973字母 I
J&H4A74字母 J
K&H4B75字母 K
L&H4C76字母 L
M&H4D77字母 M
N&H4E78字母 N
O&H4F79字母 O
P&H5080字母 P
Q&H5181字母 Q
R&H5282字母 R
S&H5383字母 S
T&H5484字母 T
U&H5585字母 U
V&H5686字母 V
W&H5787字母 W
X&H5888字母 X
Y&H5989字母 Y
Z&H5A90字母 Z

键名十六进制十进制说明
F1&H70112功能键 F1
F2&H71113功能键 F2
F3&H72114功能键 F3
F4&H73115功能键 F4
F5&H74116功能键 F5
F6&H75117功能键 F6
F7&H76118功能键 F7
F8&H77119功能键 F8
F9&H78120功能键 F9
F10&H79121功能键 F10
F11&H7A122功能键 F11
F12&H7B123功能键 F12
F13&H7C124功能键 F13
F14&H7D125功能键 F14
F15&H7E126功能键 F15
F16&H7F127功能键 F16
F17&H80128功能键 F17
F18&H81129功能键 F18
F19&H82130功能键 F19
F20&H83131功能键 F20
F21&H84132功能键 F21
F22&H85133功能键 F22
F23&H86134功能键 F23
F24&H87135功能键 F24

4. 常见问题

Q1: 为什么 keybd_event 有时无效?

  • 窗口焦点问题:确保目标窗口处于激活状态。

  • 权限问题:某些系统键(如 Win 键)可能需要管理员权限。

  • 防病毒拦截:部分安全软件会阻止模拟按键。

Q2: 如何模拟小键盘的 Enter 键?

' 按下小键盘 Enter(需加 KEYEVENTF_EXTENDEDKEY 标志)
KeyboardSimulator.keybd_event(&H0D, 0, KeyboardSimulator.KEYEVENTF_EXTENDEDKEY, IntPtr.Zero)
' 释放小键盘 Enter
KeyboardSimulator.keybd_event(&H0D, 0, KeyboardSimulator.KEYEVENTF_EXTENDEDKEY Or KeyboardSimulator.KEYEVENTF_KEYUP, IntPtr.Zero)

Q3: 如何模拟 Alt + Tab 切换窗口?

' 按下 Alt
KeyboardSimulator.keybd_event(&H12, 0, KeyboardSimulator.KEYEVENTF_KEYDOWN, IntPtr.Zero)
' 按下 Tab
KeyboardSimulator.keybd_event(&H09, 0, KeyboardSimulator.KEYEVENTF_KEYDOWN, IntPtr.Zero)
' 释放 Tab
KeyboardSimulator.keybd_event(&H09, 0, KeyboardSimulator.KEYEVENTF_KEYUP, IntPtr.Zero)
' 释放 Alt
KeyboardSimulator.keybd_event(&H12, 0, KeyboardSimulator.KEYEVENTF_KEYUP, IntPtr.Zero)

5. 总结

  • keybd_event 简单易用,适合快速模拟按键操作。

  • 组合键 需要按顺序 按下 → 释放

  • 方向键、功能键、特殊键 都有对应的虚拟键码。

  • ----来自deepseek

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值