模拟用户输入的按键问题
text1为用户输入的按键名称,输入范围为0-9,a-z,F1-F12当用户输入范围是0-9和a-z时好办,用下面的代码即可
keybd_event Asc(UCase(Text1.Text)), 0, 0, 0
即把输入的内容转换为ASCII码
但是输入为F1-F12时,不知道怎么处理了
功能键没有ASCII码,可用扫描码
我的问题是,如何把F1转换为相应的扫描码112?
多谢指点、、、、、 --------------------编程问答-------------------- 看看这个:
Public Const VK_F1 = &H70 'f1 key
Public Const VK_F2 = &H71 'f2 key
Public Const VK_F3 = &H72 'f3 key
Public Const VK_F4 = &H73 'f4 key
Public Const VK_F5 = &H74 'f5 key
Public Const VK_F6 = &H75 'f6 key
Public Const VK_F7 = &H76 'f7 key
Public Const VK_F8 = &H77 'f8 key
Public Const VK_F9 = &H78 'f9 key
Public Const VK_F10 = &H79 'f10 key
Public Const VK_F11 = &H7A 'f11 key
Public Const VK_F12 = &H7B 'f12 key
Public Const VK_F13 = &H7C 'f13 key
Public Const VK_F14 = &H7D 'f14 key
Public Const VK_F15 = &H7E 'f15 key
Public Const VK_F16 = &H7F 'f16 key
这些是F1~F16的值,你可以使用keybd_event发送出去 --------------------编程问答--------------------
有点菜,请问具体怎么发送出去,keybd_event后面写什么? --------------------编程问答-------------------- 比如发送F1
keybd_event VK_F1, 0, 0, 0 --------------------编程问答--------------------
那不是和keybd_event 112, 0, 0, 0 一样么,我得先判断出用户输入的是什么,然后再发送 --------------------编程问答-------------------- 这个不难
--------------------编程问答--------------------
Private Sub Text1_KeyDown(KeyCode As Integer, Shift As Integer)
Select Case KeyCode
Case &H70 To &H7F 'F1~F16
keybd_event KeyCode, 0, 0, 0
End Select
End Sub
哦,谢了,我试试 --------------------编程问答--------------------
不行,我的模拟方式是全局的,获取按键用的HOOK,不能用Text1_KeyDown --------------------编程问答--------------------
晕,既然你都Hook到了,那么还不容易??
补充:VB , 基础类