|
Postup:
Private Const KL_NAMELENGTH
As Long = 9
Private Const HKL_NEXT As Long = 1
Private Const HKL_PREV As Long = 0
Private Declare Function ActivateKeyboardLayout Lib "user32" ( _
ByVal HKL As Long, _
ByVal Flags As Long) As Long
Private Declare Function GetKeyboardLayout Lib "user32" ( _
ByVal dwLayout As Long) As Long
Private Declare Function GetKeyboardLayoutName Lib "user32" Alias "GetKeyboardLayoutNameA"
( _
ByVal pwszKLID As String) As Long
Private Sub Command1_Click()
Dim lngCurrent_HKL As Long
Dim strCurrent_Buffer As String
Dim lngSwitched_HKL As Long
Dim strSwitched_Buffer As String
'Zjištění
aktuálního ukazatele na rozložení klávesnice
lngCurrent_HKL =
GetKeyboardLayout(0)
'Vytvoření
bufferů
strCurrent_Buffer
= String(KL_NAMELENGTH - 1, 0)
strSwitched_Buffer = String(KL_NAMELENGTH - 1, 0)
'Zjištzění
názvu aktuálního rozložení klávesnice
GetKeyboardLayoutName strCurrent_Buffer
'Přepnutí
na následující rozložení klávesnice
ActivateKeyboardLayout HKL_NEXT, 0
'Zjištění
"přepnutého" ukazatele rozložení klávesnice
lngSwitched_HKL =
GetKeyboardLayout(0)
'Zjištění
"přepnutého" jména rozložení klávesnice
GetKeyboardLayoutName strSwitched_Buffer
MsgBox "Rozložení klávesnice bylo změněno" & vbCrLf & _
"z " & strCurrent_Buffer _
& " na " & strSwitched_Buffer
'Vrácení
původního rozložení
ActivateKeyboardLayout lngCurrent_HKL, 0
End Sub |