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键码吗? 展开
 我来答
壁淘吧5959
2014-06-29 · 超过77用户采纳过TA的回答
知道答主
回答量:138
采纳率:100%
帮助的人:67.4万
展开全部
似乎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的
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式