Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Язык клавиатруры


Автор: Over G 26.4.2002, 21:38
Помогите! Как узнать какой язык на данный момент на клавиатуре? Не тот язык, который является глыным в системе, а который на клаве в данный момент...

Автор: Mikel 27.4.2002, 06:49
GetKeyboardLayoutName. Посмотри в Help'е параметры.

Автор: Over G 27.4.2002, 15:41
Можно поподробней, пожалуйста!

Автор: Mikel 28.4.2002, 10:28
Собственно я этим не пользовался, но это то что тебе надо. Там используются какие-то константы. Я поищу в FAQ.

Автор: Mikel 28.4.2002, 11:15
Код
var p:LPTSTR;
   s:string;
begin
s:='';
p:=@s;
if getkeyboardlayoutname(p)
  then case strtoint(p) of
            409:showmessage('English');
            419:showmessage('Russian');
            else showmessage('Unknown');
            end;
end;


По непонятным причинам у меня после определения языка выходит ошибка.

Автор: QuickeneR 3.5.2002, 00:44
s должно быть не string, а массив из char длиной как минимум KL_NAMELENGTH или результат stralloc. Надо внимательнее читать help.

Автор: Over G 6.5.2002, 18:35
Спасибо за ответы!
Но только у меня все время язык определяется, как русский. Переключаю раскладку клавы, он все равно русский...

Автор: RA 6.5.2002, 20:42
Нестоит благодарности  :cool

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 З ' ) ;
end;

Автор: Over G 7.5.2002, 12:22
Все равно всегда определяется как русский...

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)