CAFE

vb6 api

CpasLock, NumLock Key제어 GetKeyState,GetKeyboardState,SetKeyboardState

작성자올란도|작성시간09.01.29|조회수643 목록 댓글 1

1. 모듈에 다음의 API 와 상수를 선언합니다.

Public Const VK_CAPITAL = &H14
Public Const VK_NUMLOCK = &H90

Public Type KeyboardBytes
    kbByte(0 To 255) As Byte
End Type
   
Public kbArray As KeyboardBytes

Public Declare Function GetKeyState Lib "user32" (ByVal nVirtKey As Long) As Long
Public Declare Function GetKeyboardState Lib "user32" (kbArray As KeyboardBytes) As Long
Public Declare Function SetKeyboardState Lib "user32" (kbArray As KeyboardBytes) As Long

2. 폼에 CommandButton 을 두개와 Lable 두개를 만들고 다음과 같이 코딩하시기 바랍니다.

Private Function CapsLock() As Integer
    ' CapsLock Key 의 On, Off 여부를 체크하는 함수
    CapsLock = GetKeyState(VK_CAPITAL) And 1 = 1
End Function

Private Function NumLock() As Integer
    ' NumLock Key 의 On, Off 여부를 체크하는 함수
    NumLock = GetKeyState(VK_NUMLOCK) And 1 = 1
End Function

Private Sub Command1_Click()
    ' CapsLock 키를 제어한다.
   
    GetKeyboardState kbArray
    kbArray.kbByte(VK_CAPITAL) = 1          ' 키를 무조건 On 시킨다.
    ' kbArray.kbByte(VK_CAPITAL) = 0        ' 키를 무조건 Off 시킨다.
                                            ' 키를 On 이면 Off 로 Off 면 On 을 시킨다.
    ' kbArray.kbByte(VK_CAPITAL) = IIf(kbArray.kbByte(VK_CAPITAL) = 1, 0, 1)
    SetKeyboardState kbArray
    Label1 = IIf(CapsLock() = 1, "CapsLock = On", "CapsLock = Off")
End Sub

Private Sub Command2_Click()
    ' NumLock 키를 제어한다.
   
    GetKeyboardState kbArray
    kbArray.kbByte(VK_NUMLOCK) = 1          ' 키를 무조건 On 시킨다.
    ' kbArray.kbByte(VK_NUMLOCK) = 1        ' 키를 무조건 Off 시킨다.
                                            ' 키를 On 이면 Off 로 Off 면 On 을 시킨다.
    ' kbArray.kbByte(VK_NUMLOCK) = IIf(kbArray.kbByte(VK_NUMLOCK) = 1, 0, 1)
    SetKeyboardState kbArray
    Label2 = IIf(NumLock() = 1, "NumLock = On", "NumLock = Off")
End Sub

Private Sub Form_Load()
    If CapsLock() = 1 Then Label1 = "CapsLock = On" Else Label1 = "CapsLock = Off"
    If NumLock() = 1 Then Label2 = "NumLock = On" Else Label2 = "NumLock = Off"
End Sub

다음검색
현재 게시글 추가 기능 열기

댓글

댓글 리스트
  • 작성자꼭미남강유 | 작성시간 09.04.10 이것도 않되네요. 노트북이라 그러나?
댓글 전체보기
맨위로

카페 검색

카페 검색어 입력폼