ух я дурья башка, код не глядя дёрнул и радуюсь
Private Declare Function LoadKeyboardLayout _
Lib "user32" _
Alias "LoadKeyboardLayoutA" (
ByVal HKL
As String, _
ByVal Flags
As Long)
As Long
Private Declare Function GetKeyboardLayoutName _
Lib "user32" _
Alias "GetKeyboardLayoutNameA" (
ByVal pwszKLID
As String)
As Long
Private Const KL_NAMELENGTH = 9
Private Function getCurrLang()
As String
Dim layoutname
As String * KL_NAMELENGTH
Dim z
As Long
z = GetKeyboardLayoutName(layoutname)
If z = 0
Then
getCurrLang = ""
Else
getCurrLang = StrZ(layoutname)
End If
End Function
'Переключает на указанную sNewLang раскладку - возвращает старую раскладку
Private Function switchLang(sNewLang
As String)
As String
'"00000419" - русская
'"00000409" - латинская
switchLang = getCurrLang
If StrComp(switchLang, sNewLang) <> 0
Then
LoadKeyboardLayout sNewLang, 1
End If
End Function
Private Function StrZ(par
As String)
As String
Dim nSize
As Long, i
As Long
nSize =
Len(par)
i =
InStr(1, par, Chr$(0)) - 1
If i > nSize
Then i = nSize
If i < 0
Then i = nSize
StrZ =
Mid$(par, 1, i)
End Function
Последний раз редактировалось
marvan 23.09.2004 (Чт) 16:40, всего редактировалось 1 раз.