C++ Builder: Переключение раскладки клавиатуры

Естественно, самый простой вариант переключить раскладку клавиатуры – воспользоваться значком, расположенным на Панели задач. Или нажать комбинацию клавиш Alt+Shift, а может Ctrl+Shift, в зависимости от настроек системы.

Но мы ведь не ищем легких путей, так что будем переключать раскладку клавиатуры при помощи приложения созданного в среде C++ Builder.

Реализовать данную фишку в программе довольно просто, к примеру, можно так:

LoadKeyboardLayout("00000409", KLF_ACTIVATE);	//английская раскладка
LoadKeyboardLayout("00000419", KLF_ACTIVATE);	//русская раскладка

Пример использования ниже:

#include 
#pragma hdrstop
 
#include "Unit1.h"
//--------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//--------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//--------------------------------------------------------------
 
void __fastcall TForm1::RadioButton1Click(TObject *Sender)
{
 LoadKeyboardLayout("00000419", KLF_ACTIVATE);        
}
//--------------------------------------------------------------
 
void __fastcall TForm1::RadioButton2Click(TObject *Sender)
{
 LoadKeyboardLayout("00000409", KLF_ACTIVATE);
}

Созданная форма приведена на рисунке.

Результат работы приложения

Архив с программой можно скачать здесь.

0

  1. прикольно.
    полезная иформация, можно будет попробывать. посмотрим что получиться.
    а всетаки привычней переключать язык с помощью клавиатуры…

    1. Как представишь, что англоговорящим людям не нужно переключать клавиатуру… Так что да, вещь нужная.

  2. Довольно интересно конечно. Я немогу подписаться под каждым вашим словом, но в общем соглашусь.

  3. Да и в отличие от большинства других подобных советов воду в уши не льешь

  4. Круто. Добавлю блог в избранное и друзьям посоветую. Ждите новых читателей 🙂

  5. Довольно интересно конечно. Я немогу подписаться под каждым вашим словом, но в общем соглашусь.

  6. Жаль, что в Интернете мало находила таких содержательных материалов

  7. Круто. Добавлю блог в избранное и друзьям посоветую. Ждите новых читателей 🙂

  8. спасибо, язык принудительно переключился, но только у меня при вводе текста теперь он вводится как-то туго, каждая буква с «задержкой» где-то в секунду, если убираю эту строку кода, то снова английский по умолчанию, и вводится все ок

    1. а вы когда запускаете приложенный проект получаете тот же результат (задержку)? — У меня вводится с нормальной скоростью. Кстати, а какая у вас операционная система (ну и версия билдера)?

  9. а как узнать код других языков.Например вот меня интересует Казахский язык?

    1. Код казахского языка — 0000043f
      Проверьте.
      На будущее: все эти значения хранятся в реестре системы — можно легко заглянуть и посмотреть (вам даже проще — не придется такую раскладку добавлять)))

      UPD
      А код украинского — 00000422
      Извините, сразу перепутала )))

  10. я вот недавно начала пользоваться Apple. для переключения раскладки использую клавиши комманд с пробелом. Но очень часто с первого нажатия не переключается. Может кто подскажет почему это происходит? Подойдет ли для эпла эта программа?

  11. Классный и не сложный урок. Полезная статья, спасибо 🙂 Сейчас буду пробывать творить такое чудо 🙂

    1. Точно так же. Только вместо радиокнопки исходящим потоком (cout) задавать вопрос и получать ответ через (cin).
      Вы столкнулись с какой-то конкретной проблемой при реализации?

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *