Přepínání rozložení klávesnice

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

Zpět

Autor: The Bozena

iReklama.cz - nový reklamní systém
iReklama.cz - nový reklamní systém