VB 模拟WIN键怎么没有反应呢 代码如下
vb吧
全部回复
仅看楼主
level 1
Option Explicit
Private Declare Sub keybd_event Lib "user32.dll" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)
Private Const KEYEVENTF_KEYUP = &H2
Private Const KEYEVENTF_EXTENDEDKEY = &H1
Private Const VK_LWIN = &H5B '左WIN键
Private Const VK_RWIN = &H5C '右WIN键
Private Sub Form_Load()
keybd_event VK_LWIN, 0, KEYEVENTF_EXTENDEDKEY, 0 ' 按下
keybd_event VK_LWIN, 0, KEYEVENTF_KEYUP, 0 ' 弹起
End Sub
高手们看看问题出在哪?
2013年04月26日 07点04分 1
level 12
给个小延时
2013年04月26日 10点04分 2
level 5
可以试下WM_KEYDOWN
2013年04月26日 14点04分 3
level 5
抱歉是 KEYEVENTF_KEYDOWN
2013年04月26日 14点04分 4
不管是VB还是VC都没出现过KEYEVENTF_KEYDOWN这个常量,按下的常量是0。
2013年04月26日 15点04分
回复 yjryym :常量是可以自定义的,我一般会定义KEYEVENTF_KEYDOWN,或直接写0,所以习惯了,忽略了VB的API浏览器没有这个........
2013年04月26日 15点04分
回复@447201162 :搞清楚,API的东西不是自己定义的。VC也没有这个常量,使用VB中还是直接写0比较好。VB调用API还是VC写的tlb比较好。
2013年04月26日 15点04分
好像我也没说API是自定义的,再说API就是封装在DLL的函数而已,自己也可以写
2013年04月26日 16点04分
level 14
Sleep 1 试试,如果还不行改成 Sleep 10,再不行继续加0。
2013年04月26日 15点04分 5
1