VBGood网站全文搜索 Google

搜索VBGood全站网页(全文搜索)

VB爱好者乐园(VBGood)

 找回密码
 立即注册
搜索
查看: 3095|回复: 4

各位高手,我这样模拟“大写锁定键”要不要得?

[复制链接]
 楼主| 发表于 2005-10-20 14:27:50 | 显示全部楼层
原因是这样:<br />(API如keybd_event函数等已声明)<br />我模拟Ctrl、Shift和Alt等键时,第一次按下,第二次弹起,就OK了。<br />代码如下(以Shift键为例,按下代码为keybd_event 160,0,0,0  弹起代码为keybd_event 160,0,&amp;H2,0<br />用按钮颜色来判定是否按下或弹起):<br />rivate Sub 换档键_Click()<br />    If 换档键.BackColor=vbWhite Then<br />             keybd_event  160,0,0,0   &#39;仅仅按下<br />             换档键.BackColor=vbBlue<br />    Else<br />             keybd_event  160,0,&amp;H2,0    &#39;仅仅弹起<br />             换档键.BackColor=vbWhite<br />    End If<br />End Sub<br /><br />但是,如果换成Caps Lock,这样就不行了,希望按第一下灯亮,按第二下灯灭,但其结果与键盘不符,它非要按两下灯亮,再按两下灯灭。我只好想了个办法,让它按下后接着弹起表示灯亮,再按下后又接着弹起表示灯灭,如此反复,代码如下(Caps Lock 的KeyCode码为十进制的20):<br />rivate Sub 大写键_Click()<br />    If 大写键.BackColor=vbWhite Then<br />             keybd_event  20,0,0,0  &#39;不仅按下<br />             keybd_event  20,0,&amp;H2,0  &#39;而且弹起<br />             大写键.BackColor=vbBlue <br />    Else<br />             keybd_event  160,0,0,0   &#39;不仅按下<br />             keybd_event  20,0,&amp;H2,0   &#39;而且弹起<br />             大写键.BackColor=vbWhite<br />    End If<br />End Sub<br /><br /><br />请教各位高手,我这样效果到是正确,但不知有没有更好的办法? 或者,请问,我这样做对吗?
回复 支持 反对

使用道具 举报

发表于 2005-10-20 15:33:17 | 显示全部楼层
没用过这个API 不太清楚<br /><br />不过刚刚用智能ABC的软键盘试了下,里面的SHIFT和CAPS LOCK的确像你写的一样<br /><br />SHIFT键CLICK一下变了颜色,出现的KEYDOWN的效果是知道再CLICK另一个字母或数字键才KEYUP<br /><br />而CAPS LOCK则是出现CLICK的效果,改变一下颜色就立即变回来<br /><br />
回复 支持 反对

使用道具 举报

发表于 2005-10-20 16:38:24 | 显示全部楼层
我觉得你这样做就挺好啊<br />
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-10-20 17:04:47 | 显示全部楼层
真滴吗?我太高兴了。<br />我学VB三星期了。当然十年前有QB的基础。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-6-1 17:52:24 | 显示全部楼层
又是一个十年过去了。现在VB用得少,VBA用得多点。不过技术照样还是不精。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

文字版|手机版|小黑屋|VBGood  

GMT+8, 2022-7-5 11:44

VB爱好者乐园(VBGood)
快速回复 返回顶部 返回列表