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


Автор: subdigger 22.9.2003, 11:19
Кто знает как правильно выдрать из этого сообщения название раскладки

Автор: <Spawn> 22.9.2003, 13:08
По моему для этого нужно юзать WM_INPUTLANGCHANGE:

Код
type
 TForm1 = class(TForm)
   Label1: TLabel;
 private
   { Private declarations }
 public
  procedure WMINPUTLANGCHANGE(var Msg:TMessage);message WM_INPUTLANGCHANGE;
 end;

var
 Form1: TForm1;

implementation

{$R *.dfm}



{ TForm1 }

procedure TForm1.WMINPUTLANGCHANGE(var Msg: TMessage);
begin
case Msg.LParam of
 $4090409:Label1.Caption:='Eng';
 $4190419:Label1.Caption:='Rus';
end;
end;

end.

Автор: subdigger 22.9.2003, 15:34
работает толлько на моей проге а с чюжих не сканит

Автор: p0s0l 22.9.2003, 16:45
Еще бы сканила... Читай в факе про хуки, если нужно брать сообщения чужих прог...

Автор: <Spawn> 22.9.2003, 18:00
Цитата(subdigger @ 22.9.2003, 07:34)
работает толлько на моей проге а с чюжих не сканит

Ну а ты что думал - для каждой программы своя выбраная раскладка клавы. По крайней мере в последних версиях винды(по моему в 95 не так, хотя может я ошибаюсь). Если нужно узнать раскладку чужого процесса, то используй например GetKeyboardLayout, либо, как уже сказал p0s0l, используй хук(например на WH_GETMESSAGE).

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