VB中左右ctrl键的区别?
编了一个程序,想屏蔽文本框的输入时的control键,用到一个API,当control键按下时自动松开,代码如下:PrivateDeclareSubkeybd_event...
编了一个程序,想屏蔽文本框的输入时的control键,用到一个API,当control键按下时自动松开,代码如下: Private Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long) Const KEYEVENT_KEYUP = &H2 Private Sub Text2_KeyDown(KeyCode As Integer, Shift As Integer) If KeyCode = vbKeyControl Then Call keybd_event(17, 0, KEYEVENT_KEYUP, 0) '松开control End If End Sub 这个方法对屏蔽左边的control键确实成功了,可是对右control键却没用,为啥? 我发现按下右control键时,也能激发keybd_event过程,但是keybd_event不是也只有一个control键码吗?
展开
1个回答
展开全部
似乎keybd_event函数对左右CTRL并没有区分。但是并不代表不分。 你用SendMessage函数松开按键试试,两个CTRL的常数如下: Private Const VK_LCONTROL = &HA2 '左 Private Const VK_RCONTROL = &HA3 '右 试试SendMessage Me.hwnd, VK_LCONTROL , 0, ByVal 0& 没测试,不知道行不行。不过SendMessage发送按键是分左右CTRL的
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询