Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как узнать язык в окне? [D7, WinXP]


Страницы:   1 2

Вредитель ©   (2007-12-09 12:01:00) 

Нужен способ узнать язык ввода в окне, от которого приходит  message, пойманное ловушкой WH_KEYBOARD.


Германн   (2007-12-10 22:03:00) [21]


> Вредитель ©   (10.12.07 18:40) [11]
>
> В какой справке?
>

Лучше конечно читать MSDN, как предагается в [12].
Но возвращаясь к вопросу р встроенной в Дельфи справке я не верю что на твоем HD нет папки X:\Program Files\Common Files\Borland Shared\MSHelp


Rouse_   (2007-12-10 19:27:00) [22]

Первая функция: http://msdn2.microsoft.com/en-us/library/ms633522.aspx
Вторая: http://msdn2.microsoft.com/en-us/library/ms681956.aspx
Третья: http://msdn2.microsoft.com/en-us/library/ms647463.aspx
Четвертая: http://msdn2.microsoft.com/en-us/library/ms646296.aspx

Ну а это тебе в список самых любимых ссылок (Online MSDN): http://msdn.microsoft.com/library/default.asp


Вредитель   (2007-12-10 18:40:00) [23]

В какой справке?
Если можно, кто нибудь киньте мне на mail этот раздел, я весь HD проискал, у меня нет!


Германн   (2007-12-10 17:40:00) [24]


> Вредитель   (10.12.07 17:30) [9]
>
> В справке нет

Не ври. В справке все есть.


Вредитель   (2007-12-10 17:30:00) [25]

В справке нет, а пишу клав. шпиона, все готово, кроме языков!!!


Rouse_   (2007-12-10 17:01:00) [26]


> но че такое AHandle?

Это переменная, в которую должен быть помещен хэнд окна, для которого ты пытаешся получить раскладку. В справке прочти описание по данным функциях - должно помочь.


Вредитель   (2007-12-10 16:58:00) [27]

Извините, может туплю, но че такое AHandle? У просто Handle параметров нет!


Rouse_   (2007-12-10 16:24:00) [28]

вот тебе кусочек кода, на вход идет AHandle:

   WndInfo.dwThreadID :=
     GetWindowThreadProcessId(AHandle, WndInfo.dwProcessID);
   AttachThreadInput(GetCurrentThreadId, WndInfo.dwThreadID, True);
   VerLanguageName(GetKeyboardLayout(WndInfo.dwThreadID) and $FFFF,
     WndInfo.szLayoutName, MAXCHAR);
   AttachThreadInput(GetCurrentThreadId, WndInfo.dwThreadID, False);


WndInfo.szLayoutName - содержит описание раскладки


clickmaker   (2007-12-10 16:24:00) [29]

if Word(hl)=LANG_ENGLISH then


Вредитель   (2007-12-10 16:16:00) [30]

hl:=GetKeyboardLayout(0);
 if hl=LANG_ENGLISH then ShowMessage('!!!');

Вроде так, но не пашет! А должно -- все как на MSDN!


Leonid Troyanovsky   (2007-12-09 13:11:00) [31]


> Вредитель   (09.12.07 12:56) [2]

> Чё заместо него должно быть?

http://msdn2.microsoft.com/en-us/library/ms646296.aspx

--
Regards, LVT.


Вредитель   (2007-12-09 12:56:00) [32]


var hl:HKL;
hl:=GetKeyboardLayout(msg.hwnd);
 if hl=LANG_ENGLISH then ShowMessage('!!!');

msg.hwnd--не прет!
Чё заместо него должно быть?


Leonid Troyanovsky   (2007-12-09 12:16:00) [33]


> Вредитель   (09.12.07 12:01)

Вредителям, IMHO, язык излишен.

GetKeyboardLayout, RTFM

--
Regards, LVT.


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо