标题:vb中如何控制小键盘“num lock”键?????
只看楼主
laohei123456
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2007-8-14
 问题点数:0 回复次数:4 
vb中如何控制小键盘“num lock”键?????
vb程序中如何控制小键盘“num lock”键。程序开始运行时先记住“num lock”键的状态,然后自动关闭“num lock”键(让2、4、6、8键为方向键),待程序退出前再恢复“num lock”键的原来状态。
搜索更多相关主题的帖子: num lock 键盘 状态 自动 
2007-08-14 11:40
心中有剑
Rank: 2
等 级:新手上路
威 望:5
帖 子:611
专家分:0
注 册:2007-5-18
得分:0 
sendkeys不可以吗?

2007-08-14 12:07
laohei123456
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2007-8-14
得分:0 
谢谢!但用代码如何实现:读当前“num lock”键信息,程序退出时恢复“num lock”键值?
2007-08-14 14:05
心中有剑
Rank: 2
等 级:新手上路
威 望:5
帖 子:611
专家分:0
注 册:2007-5-18
得分:0 

Private Declare Sub keybd_event Lib "user32" _
(ByVal bVk As Byte, _
ByVal bScan As Byte, _
ByVal dwFlags As Long, _
ByVal dwExtraInfo As Long)

Private Declare Function GetKeyState Lib "user32" _
(ByVal nVirtKey As Long) As Long

Private Const KEYEVENTF_KEYUP = &H2
Private Const VK_CAPITAL = &H14
Private Const VK_NUMLOCK = &H90

Private Sub Command1_Click()
If GetKeyState(VK_CAPITAL) And &H1 Then
Else
'按下NUMLOCK 键
Call keybd_event(VK_NUMLOCK , 0, 0, 0)
Call keybd_event(VK_NUMLOCK , 0, KEYEVENTF_KEYUP, 0)
End If
End Sub

Private Sub Command2_Click()
If GetKeyState(VK_NUMLOCK ) And &H1 Then
'按下NUMLOCK 键
Call keybd_event(VK_NUMLOCK , 0, 0, 0)
Call keybd_event(VK_NUMLOCK , 0, KEYEVENTF_KEYUP, 0)
End If
End Sub


2007-08-14 15:34
laohei123456
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2007-8-14
得分:0 
太谢谢你了!
2007-08-14 15:56



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-162561-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.152699 second(s), 7 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved