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 GetKeyboardState Lib "user32" _
(pbKeyState As Byte) As Long
Private Declare Function SetKeyboardState Lib "user32" _
(lppbKeyState As Byte) As Long
Public Sub CapsLockOn()
Dim Key(255) As Byte
Dim bflag As Boolean
'得到键盘状态
GetKeyboardState Key(0)
bflag = Key(VK_CAPITAL)
If bflag Then
'每一次击键,都有key press(按下键)和key release(释放键)
keybd_event VK_CAPITAL, &H45, KEYEVENTF_EXTENDEDKEY Or 0, 0
keybd_event VK_CAPITAL, &H45, KEYEVENTF_EXTENDEDKEY Or KEYEVENTF_KEYUP, 0
End If
End Sub
Public Sub CapsLockOff()
Dim Key(255) As Byte
Dim bflag As Boolean
'得到键盘状态
GetKeyboardState Key(0)
bflag = Key(VK_CAPITAL)
If Not bflag Then
keybd_event VK_CAPITAL, &H45, KEYEVENTF_EXTENDEDKEY Or 0, 0
keybd_event VK_CAPITAL, &H45, KEYEVENTF_EXTENDEDKEY Or KEYEVENTF_KEYUP, 0
End If
End Sub
Option Explicit
Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long
Private Const GWL_EXSTYLE = (-20)
Private Const GWL_STYLE = (-16)
Private Const ES_LOWERCASE = &H10&
Private Const ES_UPPERCASE = &H8&
Private Sub Form_Load()
Dim style As Long
style = GetWindowLong(Text1.hwnd, GWL_STYLE)
style = style Or ES_UPPERCASE
SetWindowLong Text1.hwnd, GWL_STYLE, style
style = GetWindowLong(Text2.hwnd, GWL_STYLE)
style = style Or ES_LOWERCASE
SetWindowLong Text2.hwnd, GWL_STYLE, style
End Sub