![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как узнать язык в окне? [D7, WinXP]
Вредитель © (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.