Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Как проверить rus/eng из CMAC

4 views
Skip to first unread message

Sergey Rusakov

unread,
Mar 4, 2005, 5:25:48 AM3/4/05
to
Привет всем!
Как бы узнать какой сейчас выбран язык?
key_to_window(...) переназначает [ на функцию. Надо бы в ней узнать что
нажали х или [ ?

Сергей

--
Отправлено через сервер Форумы@mail.ru - http://talk.mail.ru

Vit Karetny

unread,
Mar 9, 2005, 9:59:48 AM3/9/05
to
Fri Mar 04 2005 13:25, Sergey Rusakov wrote to All:

SR> Как бы узнать какой сейчас выбран язык?
SR> key_to_window(...) переназначает [ на функцию. Hадо бы в ней узнать что
SR> нажали х или [ ?

Вот тебе для размышлений тестовый пример (для Multi-Edit 9.10.03):

Macro_file temp;
#include Win32.sh
import int GetKeyboardLayout( PKeyboardState KeyState )
user32 'GetKeyboardLayout';
macro temp1 {
int cc;
cc = GetKeyboardLayout( 0 );
MessageBox( 0, Hex_Str(cc), "Info", mb_IconInformation | mb_taskmodal );
}

Функция GetKeyboardLayout извлекает данные об активной раскладке символов
на клавиатуре для заданного потока. Нулевой аргумент означает, что
возвращается значение раскладки для активного потока. Возвращаемое значение -
дескриптор раскладки символов на клавиатуре. Младшее слово содержит
идентификатор региона, идентифицирующий язык ввода, а старшее слово содержит
дескриптор устройства, идентифицирующий физическую раскладку клавиатуры.
Обычно оба слова равны 0x0409 (лат) иди 0x0419 (рус). Выполни этот тест
сначала тогда, когда текущая клавиатура латинская, потом для русской, и
проверь, эти ли коды стоят в результате. Вот и всё.
Другие полезные функции API для работы с клавиатурой ты можешь найти в
справочниках. Например, на http://www.firststeps.ru .

0 new messages