![]() |
Как определить раскладку?
Надо определить чем вводится текст кириллицей или латинецей.Естетвенно я знаю о GetLocaleInfo но оно как им некрути возращает только 0419 :( А мне нада както узнать вводится ли руский текст или английский.
|
if GetKeyboardLayout(GetWindowThreadProcessId(GetFore groundWindow, null)) == 67699721
//раскладка английская else //раскладка НЕанглийская, например 68748313 соответствует русской вроде так ... |
Цитата:
|
Видимо правильнее сравнивать не возвращаемое значение, а его low word с индификатором раскладки. к примеру:
Код:
HKL hKl = GetKeyboardLayout(GetCurrentThreadId());и Цитата:
|
У меня подобный код показывает только раскладку по-умолчанию, а совсем не ту, которая включена. В чём может быть проблема?
|
Цитата:
|
Цитата:
|
Придумал гениальный способ:
читаешь символы, после этого: if (('a' < ch) and (ch < 'z')) or (('A' < ch) and (ch < 'Z')) then // английская раскладка else // русская... |
Цитата:
|
чё мудрить то? =\
Код:
buffer db KL_NAMELENGTH dup (?) |
| Время: 05:59 |