![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Энгл Рус [D6, Win95/98]
Сутковой Вадим © (2002-12-11 21:22:00)Добрый вечер делферы! Вот, озодачился проблемой:
Мне нужно из проги узновать какая раскладка клавы в активном окне! GetKeyboartLayout - только в своей ыинде определяет! Помогите плииз, запыхался в поисках...
Сутковой Вадим (2002-12-12 11:36:00) [1]Спасибо Юрий Зотов © , огромнейшее спасибо!
Юрий Зотов (2002-12-11 22:50:00) [2]Для чужих окон нужно сначала приаттачить ввод. Вот простенький (но работающий) примерчик. Не судите строго - набросал на скорую руку, лишь бы показать ход действий. У формы выставьте StayOnTop, а интервал таймера - 100.
type
TForm1 = class(TForm)
Label1: TLabel;
Timer1: TTimer;
procedure Timer1Timer(Sender: TObject);
private
FID: DWORD;
end;
procedure TForm1.Timer1Timer(Sender: TObject);
begin
if FID <> 0 then AttachThreadInput(GetCurrentThreadId, FID, False);
FID := GetWindowThreadProcessId(GetForegroundWindow, nil);
if FID = GetCurrentThreadId then FID := 0 else AttachThreadInput(GetCurrentThreadId, FID, True);
Label1.Caption := IntToStr(GetKeyboardLayout(FID))
end;