![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
как узнать есть ли данный язык не переключая раскладки? [D6]
Novichek © (2002-11-11 20:00:00)есть способ узнать это переключив раскладку к примеру так:
if LoadKeyboardLayout("00000419",KLF_ACTIVATE)=0
then ShowMessage("Русский язык не установлен");
а как узнать не переключая ее?
Novichek (2002-11-12 18:41:00) [1]еще вопрос: а как зная HKL вытащить буквенное обозначение раскладки, например En, Ru.
Jeer (2002-11-11 21:27:00) [2]GetKeyboardLayout
Jeer (2002-11-11 21:21:00) [3]Разберешься, надеюсь.
function ChangeLayout_(LANG: Integer): Boolean;
var
Layouts: array [0..16] of HKL;
i, Count: Integer;
begin
Result:=False;
Count:=GetKeyboardLayoutList(High(Layouts)+1, Layouts)-1;
for i:=0 to Count do if (LoWord(Layouts[i]) and $FF) = LANG then
Result:=ActivateKeyboardLayout(Layouts[i], 0)<>0;
end;
Novichek (2002-11-11 21:13:00) [4]все, уже нашел. остался второй вопрос:
как узнать какая раскладка в данном окне сейчас включена?
Novichek (2002-11-11 21:04:00) [5]Jeer © (11.11.02 21:01)
а через GetKeyboardLayoutList?
Jeer (2002-11-11 21:01:00) [6]GetLocaleInfo(..)
Как думаешь, откуда для нее инфа береться ? :))
Novichek (2002-11-11 21:00:00) [7]в общем делаю так:
var
arr:array[0..5] of HKL;
q:integer;
begin
GetKeyboardLayoutList(6,Arr);
for q:=0 to 5 do
listbox1.Items.Add(inttostr(arr[q]));
end;
первые цифры это установленные языки, а как отсеять все остальное не нужное?
Jeer (2002-11-11 20:59:00) [8]Интересно и откуда ОНА по твоему узнает об инсталляции того или иного языка ?
Novichek (2002-11-11 20:36:00) [9]Jeer ©
а через WinAPI?
Jeer (2002-11-11 20:33:00) [10]Registry проверяй
HKCU\Control Panel\International
Locale
и
KeyBoard Layout
Novichek (2002-11-11 20:32:00) [11]и еще вопрос: как узнать какая раскладка в данном окне сейчас включена?
Феу (2002-11-11 20:19:00) [12]Можт быть GetKeyboardLayoutList? - Не знаю, не пробовал, врать не буду.