![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
русская ли винда?
Nicky © (2003-07-25 13:47:00)отелось бы узнать, русифицирована ли винда, под которой я работаю. накопал апишку GetKeyboardLayoutList, дальше, вероятно надо юзать ImmGetDescription из imm32.dll но она ничего не возвращает под Win2000, а следовательно иметь ее ввиду для проги, которая работает неизвестно где не имеет смысла.
function ImmGetDescription(hKL : THandle; lpszDescription : LPTSTR; uBufLen : UINT): Integer;
( 5,lanBuf)отелось бы узнать, русифицирована ли винда, под которой я работаю. накопал апишку GetKeyboardLayoutList, дальше, вероятно надо юзать ImmGetDescription из imm32.dll но она ничего не возвращает под Win2000, а следовательно иметь ее ввиду для проги, которая работает неизвестно где не имеет смысла.
function ImmGetDescription(hKL : THandle; lpszDescription : LPTSTR; uBufLen : UINT): Integer;
stdcall; external "imm32.dll" name "ImmGetDescriptionA";
lanBuf : array [0..6] of THandle;
lanDesc : array [0..100] of char;
hLan := GetKeyboardLayoutList(5,lanBuf);
i := ImmGetDescription(lanBuf[0],@lanDesc,sizeof(lanDesc));
i=0
может я что не так делаю? может лучше в реестре где-нибудь поискать?
МалОй (2003-07-29 20:26:00) [1]
Я так понял, что вопрос стоит не "установлена ли на компе русская раскладка"? А какая винда установлена. Англоязычная (исходная от Билла) или русицифированный вариант
Толик (2003-07-29 17:26:00) [2]проверка на наличие в виндах русской раскладки:
procedure TForm1.Button8Click(Sender: TObject);
var
i: longint;
langList: array[0..255] of longword;
begin
for i := 0 to GetKeyboardLayoutList(SizeOf(langList), langList) - 1 do begin
if langList[i] = LoadKeyboardLayout(pchar(IntToHex(LANG_RUSSIAN, 8)), KLF_SUBSTITUTE_OK) then
( "russian language")
проверка на наличие в виндах русской раскладки:
procedure TForm1.Button8Click(Sender: TObject);
var
i: longint;
langList: array[0..255] of longword;
begin
for i := 0 to GetKeyboardLayoutList(SizeOf(langList), langList) - 1 do begin
if langList[i] = LoadKeyboardLayout(pchar(IntToHex(LANG_RUSSIAN, 8)), KLF_SUBSTITUTE_OK) then
ShowMessage("russian language");
end;
end;
МалОй (2003-07-29 16:34:00) [3]
Я думаю, что надо пользоваться функцией GetLocaleInfo. У нее много разных параметров, наверное, самые подходящие параметры это
char LCData[100];
GetLocaleInfo(LOCALE_SYSTEM_DEFAULT,LOCALE_SENGLANGUAGE,LCData,100);
Nicky (2003-07-29 15:44:00) [4]
и что делать с массивом целочисленных значений? см. начало дискуссии.
Игорь Шевченко (2003-07-25 18:52:00) [5]
GetKeyboardLayoutList
Nicky (2003-07-25 16:25:00) [6]
вообще-то надо выяснить, может ли юзер читать русские буквы и писать кириллицей. да, от англорускости винды это, пожалуй не зависит. и если китаец сдуру установил русский тетрис, то еще не факт...
думаю, надо определить есть ли среди раскладок клавы - русская.
Толик (2003-07-25 14:44:00) [7]
Что значит "русифицирована ли винда"? Если на английскую винду поставить русский IE это будет являться русификацией? Или интересует список уставленных языков и раскладок клавиатуры?
Игорь Шевченко (2003-07-25 14:42:00) [8]
GetSystemDefaultUILanguage