'===========================================================================
' ファイル名 : basKeyState.bas
' ファイル説明 : キーボードの状態 関連
' 作成者 : Uz
' E-Mail : uz@violet.plala.or.jp
' HomePage : http://www1.plala.or.jp/uz/
' 作成日 : 1998/10/15 (Thu)
' 修正日 : 1998/10/15 (Thu)
' 備考 : なし
'===========================================================================
Option Explicit
' -- API 定数宣言
Private Const VK_NUMLOCK = &H90
Private Const VK_CAPITAL = &H14 '以下の関数ないの VK_NUMLOCK を VK_CAPITAL に置き換えれば
Private Const VK_SCROLL = &H91 'CapsLock の状態を操作できる(VK_SCROLLも同様)
' -- API 型宣言
Private Type KeyboardState
State(255) As Byte
End Type
' -- API 関数宣言
Private Declare Function GetKeyboardState Lib "user32" (kbState As KeyboardState) As Long
Private Declare Function SetKeyboardState Lib "user32" (kbState As KeyboardState) As Long
'///////////////////////////////////////////////////////////////////////////
' 関数名 : GetNumLock
' 目的説明 : NumLockの状態を取得
' 前提条件 : なし
' 結果 : なし
' 引数 : なし
' 戻り値 : Boolean True -> On
' False -> Off
' 備考 : なし
'///////////////////////////////////////////////////////////////////////////
Public Function GetNumLock() As Boolean
Dim kbState As KeyboardState
Call GetKeyboardState(kbState)
GetNumLock = (kbState.State(VK_NUMLOCK) = 1)
End Function
'///////////////////////////////////////////////////////////////////////////
' 関数名 : SetNumLock
' 目的説明 : NumLockの状態を設定する
' 前提条件 : なし
' 結果 : なし
' 引数 : bFlag Boolean True -> On に設定
' False -> Off に設定
' 戻り値 : Boolean 設定前の状態
' 備考 : なし
'///////////////////////////////////////////////////////////////////////////
Public Function SetNumLock(bFlag As Boolean) As Boolean
Dim kbState As KeyboardState
Call GetKeyboardState(kbState)
SetNumLock = kbState.State(VK_NUMLOCK)
kbState.State(VK_NUMLOCK) = IIf(bFlag, 1, 0)
Call SetKeyboardState(kbState)
End Function
|