Sources
Delphi Russian Knowledge Base
DRKB - это самая большая и удобная в использовании база знаний по Дельфи в рунете, составленная Виталием Невзоровым

Какой язык на данный момент на клавиатуре?

01.01.2007

Используй GetKeyboardLayoutName

Автор: Mikel

Взято с Vingrad.ru https://forum.vingrad.ru


var

 
Form1
: TForm1;
LAYOUT
: String;
implementation
{$R *.DFM}
 
procedure TForm1
.Button1Click(Sender: TObject);
var
  RA
: Array[0..$FFF] of Char;
begin
GetKeyboardLayoutName(RA) ;
Layout := StrPas(RA);
if Layout = '00000419' then
  showmessage
(' CCCP ' )
else
 
if Layout = '00000409' then
    showmessage
(' USA ' )
 
else
    showmessage
(' X 3 ' ) ;
end;

Автор: Radmin

Взято с Vingrad.ru https://forum.vingrad.ru


function WhichLanguage:string; 
var
ID
:LangID;
Language: array [0..100] of char;
begin
ID
:=GetSystemDefaultLangID;
VerLanguageName(ID,Language,100);
Result:=String(Language);
end;

Пример вызова этой функции:

procedure TForm1.Button1Click(Sender: TObject); 
begin
  Edit1
.Text:=WhichLanguage;
end;

Также, для определения активного языка можно воспользоваться функцией GetUserDefaultLangID.

Взято из https://forum.sources.ru