Регистрация: 23.10.2013
Сообщений: 5,076
Записей в блоге: 8

Установить английскую раскладку клавиатуры

24.10.2014, 10:35. Показов 4515. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Актуально. Задача.
При загрузке программы должна устанавливаться
английская раскладка клавиатуры. А если она уже
стоит, то такой и должна остаться.
Естественно я обратился на форум, ... и на меня обрушился
град информации. Привожу вам пример одной такой
программы, которую очень похвалили (но она не работает)
Visual Basic
1
2
3
4
5
6
7
8
9
Public Declare Function GetKeyboardLayout Lib 'user32' (ByVal dwLayout As Long) As Long
...
Dim HKL As Long
HKL = GetKeyboardLayout(0)
If HKL = 67699721 Then
Label6.Caption = 'ENG'
Else
Label6.Caption = 'RUS'
End If
Стал далее читать сообщения, выяснилось, что нужна
активация. Нашёл соответствующую Api-функцию.
И привожу вам программу, которая переключает
раскладку клавиатуры при нажатии кнопки.
Это рабочая программа (она проверена)
Но мне нужна не такая. Я подумал, что надо сделать,
используя уже известные мне Api-функции чтобы моя
задача тоже была решена?? Тут в принципе есть два
варианта
1) либо программа как-то узнает какая раскладка уже
установлена и действует в соответствии с полученной
информацией
2) либо английская раскладка устанавливается независимо
от того что стоит.
Это все, что я смог сделать. А воз и ныне там!!


Visual Basic
1
2
3
4
5
6
7
8
9
10
11
Option Explicit
 
Dim HKL As Long, N As Long
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 Sub Command1_Click()
    HKL = GetKeyboardLayout(0)
    N = ActivateKeyboardLayout(0, 0)
End Sub
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
24.10.2014, 10:35
Ответы с готовыми решениями:

Программно установить Русскую раскладку клавиатуры (именно установить, не активировать)
Прошу помощи. Необходимо Программно установить Русскую раскладку клавиатуры в английскую версию Windows (именно установить, не...

Узнать раскладку клавиатуры в программах
Здравствуйте. Подскажите как узнать раскладку клавиатуры не в программе VB, а в других активных окнах. Находил код, но он работает только...

Как переключить раскладку клавиатуры из VB?
Подскажите, как переключить раскладку клавиатуры из VB?. (Желательно без Pron32.dll) Заранее спасибо.

3
Модератор
10048 / 3894 / 883
Регистрация: 22.02.2013
Сообщений: 5,847
Записей в блоге: 79
24.10.2014, 11:13
Лучший ответ Сообщение было отмечено echs как решение

Решение

geh, это вопрос?
Прежде чем пользоваться API функциями, нужно читать их описание. Для чего тебе во втором коде GetKeyboardLayout? Куда ты собрался девать HKL?
Откуда ты взял параметры для ActivateKeyboardLayout? Почему нули?
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Option Explicit
 
Public Enum Layout
    engus = &H409&
    russian = &H419&
End Enum
 
Private Const KLF_SETFORPROCESS = &H100
Private Declare Function ActivateKeyboardLayout Lib "user32" (ByVal HKL As Layout, ByVal flags As Long) As Long
 
Private Sub Command1_Click()
    ActivateKeyboardLayout russian, KLF_SETFORPROCESS
End Sub
 
Private Sub Command2_Click()
    ActivateKeyboardLayout engus, KLF_SETFORPROCESS
End Sub
1
Регистрация: 23.10.2013
Сообщений: 5,076
Записей в блоге: 8
24.10.2014, 12:02  [ТС]
The trick,
Вы задали хороший вопрос. Действительно зачем я
оставил вторую Api, когда достаточно одной? Тут
ответить нетрудно. Есть две основные причины.
Судя по названию (GetKeyboardLayout) я подумал, что
без этой функции ничего работать не будет вообще.
То есть я ещё плохо знаю Api-функции. Что касается
Констант, то тут мне бы следовало действительно
навести справки об этой Api. В общем можно подвести
итог: мне ещё нужно очень много времени и усилий чтобы
изучить VB.
Но увы ...
Мне нравится программировать. Самому делать программы.
На изучение чего-либо нет времени и не будет. В конце концов
я попрошу на форуме мне помочь ...
The trick, Вы ведь не откажете?!
Спасибо вам за то внимание, которое вы ко мне проявили.
0
Модератор
10048 / 3894 / 883
Регистрация: 22.02.2013
Сообщений: 5,847
Записей в блоге: 79
24.10.2014, 15:54
geh, если есть время, я всегда помогаю когда действительно нужна помощь. Создавайте темы в разделе с вопросами я и другие пользователи помогут по возможности.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
24.10.2014, 15:54
Помогаю со студенческими работами здесь

Как определить текущую раскладку клавиатуры?
Прошу помочь

Как программно определить текущую раскладку клавиатуры?
Хочу написать для себя небольшую программку, которая будет постоянно показывать на экране монитора небольшое окошко, на котором будет...

Как определить раскладку клавиатуры (язык) в фоновом режиме?
Всем доброго дня суток! Как можно определить раскладку клавиатуры и выводить сообщение, когда программа (окно программы) неактивно? Нашел...

Как сменить раскладку клавиатуры на Английскую по клику по Edit
Как сменить раскладку клавиатуры на Английскую по клику по Edit !!

Как в командной строке изменить раскладку клавиатуры на английскую?
Пишу прогу, после открытия окна для ввода данных автоматически раскладка меняется на русскую. Каждый раз переключать неудобно. То что...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

Новые блоги и статьи
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru