主题:求助: VB 几条命令转 VF 命令...
琅拿度
[专家分:2820] 发布于 2011-09-29 14:36:00
Declare Sub keybd_event Lib "user32 " (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)
Public Const KBC_KEY_CMD = &H64 '键盘命令端口
Public Const KBC_KEY_DATA = &H60 '键盘数据端口
Public Const VK_A = &H41
keybd_event VK_A, 0, 0, 0
这是几条VB命令,模拟键盘敲击,能转VF吗?
回复列表 (共4个回复)
沙发
琅拿度 [专家分:2820] 发布于 2011-09-29 15:16:00
Declare keybd_event IN user32 String, Integer,Integer,Integer
Declare Sleep In kernel32 Integer dwMilliseconds && "Sleep"是分大小写的,如果写成“sleep”,会出现找不到入口错误
PUBLIC KBC_KEY_CMD
PUBLIC KBC_KEY_DATA
KBC_KEY_CMD = '&H64'
KBC_KEY_DATA = '&H60'
PUBLIC VK_A
VK_A='&H41'
Sleep(4000)
keybd_event(VK_A, 0, 0, 0)
Sleep(100)
keybd_event(VK_A, 0, 2, 0)
以上代码,在“sleep(4000)”时切换到记事本界面,有时能按出个“8”字,有时不行,有时又出现“x”,不恒定,按照在VB里,应该输出“a”才对,不解......
板凳
琅拿度 [专家分:2820] 发布于 2011-09-29 15:20:00
成功了!原来h是16进制,第一个参数用Integer,写成65就成功了!!!
3 楼
lbscyb [专家分:4780] 发布于 2011-10-31 00:38:00
?0x41 && &H41
4 楼
lbscyb [专家分:4780] 发布于 2011-10-31 00:41:00
vb 的h41就是 hex 16进制的缩写,vfp 写成 0x
我来回复