Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Как переключать Ru-En из VB6 / 4 сообщений из 4, страница 1 из 1
31.03.2006, 19:07:50
    #33638541
Дмитрий П.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как переключать Ru-En из VB6
Привет всем!
Как из программы на VB6 можно переключать раскладку клавиатуры:
Ru-En (Win2000)?

Спасибо!
...
Рейтинг: 0 / 0
01.04.2006, 00:37:25
    #33638818
nibbles
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как переключать Ru-En из VB6
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
Public Declare Function GetKeyboardLayout Lib "user32" _
    (ByVal dwLayout As Long) As Long
Public Declare Function ActivateKeyboardLayout Lib "user32" _
    (ByVal HKL As Long, ByVal flags As Long) As Long


' Раскладки клавиатуры
Public Enum enmKeybordLayout
    kbrdEnglish =  67699721 
    kbrdRussian =  68748313 
End Enum


' ============================================================
' Назначение:
'           Включить выбранную раскладку клавы
' Аргументы:
'           Требуемая раскладка
' Пример:   SetLayout kbrdEnglish
' ============================================================
Public Sub SetLayout(ByVal myLayout As enmKeybordLayout)
Dim lngReturn As Long
Dim lngCodeKeybord As Long

    ' Получить текущую раскладку
    lngReturn = GetKeyboardLayout(lngCodeKeybord)
     'Если раскладки не совпадают, значит, надо переключиться
    If lngReturn <> CLng(myLayout) Then 
        Call ActivateKeyboardLayout(HKL_NEXT, KLF_REORDER)        
    End If

End Sub


public sub main()
    ' Установить английскую раскладку
    SetLayout kbrdEnglish
end sum
...
Рейтинг: 0 / 0
01.04.2006, 18:28:10
    #33639230
Robert Tappan Moris
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как переключать Ru-En из VB6
nibbles
Код: plaintext
1.
        Call ActivateKeyboardLayout(HKL_NEXT, KLF_REORDER)        

Надо понимать это именно этот кусок и переключает разкладки? То есть переключает на следующую раскладку.
Но ведь если используются 3 или более раскладок, то нужно уже вводить цикл или рекурсию. Нельзя ли как-то указывать какую именно раскладку нужно включить?
...
Рейтинг: 0 / 0
03.04.2006, 10:00:38
    #33640297
Melkiades
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как переключать Ru-En из VB6
Утанавливает раскладку вот эта функция:
Код: plaintext
1.
2.
    ' Установить английскую раскладку
    SetLayout kbrdEnglish
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Как переключать Ru-En из VB6 / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]