当前位置:编程学习 > VB >>

模拟用户输入的按键问题

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发送出去 --------------------编程问答--------------------
引用 1 楼 veron_04 的回复:
看看这个:
VB code

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 ……


有点菜,请问具体怎么发送出去,keybd_event后面写什么? --------------------编程问答-------------------- 比如发送F1
keybd_event VK_F1, 0, 0, 0 --------------------编程问答--------------------
引用 3 楼 veron_04 的回复:
比如发送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
--------------------编程问答--------------------
引用 5 楼 veron_04 的回复:
这个不难
VB code

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 Se……

哦,谢了,我试试 --------------------编程问答--------------------
引用 5 楼 veron_04 的回复:
这个不难
VB code

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 Se……

不行,我的模拟方式是全局的,获取按键用的HOOK,不能用Text1_KeyDown --------------------编程问答--------------------
引用 7 楼 pengang11 的回复:
引用 5 楼 veron_04 的回复:

这个不难
VB code

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
……

晕,既然你都Hook到了,那么还不容易??
补充:VB ,  基础类
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,