求教:在VB中如何实现点击界面上的按钮,可以实现人工按下键盘上面的NumLock按钮的功能?
在VB中如何实现点击界面上的按钮,可以实现人工按下键盘上面的NumLock按钮的功能,(也就是如何打开小键盘)? 问题点数:10、回复次数:2Top
1 楼alexzhang00(三角猫)回复于 2003-11-04 18:45:16 得分 10
Private Declare Function GetKeyState Lib "user32" (ByVal nVirtKey As Long) As Integer
Private Declare Function GetKeyboardState Lib "user32" (pbKeyState As Byte) As Long
Private Declare Function SetKeyboardState Lib "user32" (lppbKeyState As Byte) As Long
Private Sub SetKeyState(intKey As Integer, fTurnOn As Boolean)
'取得键盘目前的状态,设定您想设定的任意键,再将其他键还成之前的状态,只改变一个键值
Dim abytBuffer(0 To 255) As Byte
GetKeyboardState abytBuffer(0)
abytBuffer(intKey) = CByte(Abs(fTurnOn))
SetKeyboardState abytBuffer(0)
End Sub
Function GetCapslock() As Boolean
'返回 Capslock 的状态
GetCapslock = CBool(GetKeyState(vbKeyCapital) And 1)
End Function
Function GetNumlock() As Boolean
'返回 Numlock 的状态
GetNumlock = CBool(GetKeyState(vbKeyNumlock) And 1)
End Function
Function GetScrollLock() As Boolean
'返回 ScrollLock 的状态
GetScrollLock = CBool(GetKeyState(vbKeyScrollLock) And 1)
End Function
Sub SetCapslock(Value As Boolean)
'设定 Capslock 的状态
Call SetKeyState(vbKeyCapital, Value)
End Sub
Sub SetNumlock(Value As Boolean)
'设定 Numlock 的状态
Call SetKeyState(vbKeyNumlock, Value)
End Sub
Sub SetScrollLock(Value As Boolean)
'设定 ScrollLock 的状态
Call SetKeyState(vbKeyScrollLock, Value)
End Sub
实际运用的方式如下:
Private Sub Command1_Click()
SetScrollLock True ' 设定 ScrollLock 为 On
End Sub
Private Sub Command2_Click()
MsgBox "ScrollLock:" & GetScrollLock ' 取得 ScrollLock 状态
End Sub
Top
2 楼fulongbiao(一个人的精彩)回复于 2003-11-04 19:47:41 得分 0
谢谢楼上的,学习中。。。Top




