Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Система";
Текущий архив: 2002.05.13;
Скачать: [xml.tar.bz2];

Вниз

Language   Найти похожие ветки 

 
bos   (2002-02-13 12:20) [0]

Подскажите, как повесить Hook на переключение раскладки клавиатуры?


 
bos   (2002-02-13 15:31) [1]

Работает но не так как хотелось бы:

function GetLanguage: string;
var
p: PChar;
begin
GetMem(p, KL_NAMELENGTH);
try
GetKeyboardLayoutName(p);
Result := p;
finally
FreeMem(p, KL_NAMELENGTH);
end;
end;

function GetMsgHook(Code: Integer; WParam: wParam; Msg: PMsg): Longint; stdcall;
begin
if Msg.message = WM_INPUTLANGCHANGEREQUEST then begin
MyLanguage;
end; { if }
end;

procedure MyLanguage;
var
slan : string;
begin
slan:=GetLanguage;
if slan="00000409" then begin
// английский флаг
fmMyHints.Image3.Picture:=fmMyHints.Image1.Picture
end;
if slan="00000419" then begin
// российский флаг
fmMyHints.Image3.Picture:=fmMyHints.Image2.Picture
end;
end;

procedure TFmParam.FormCreate(Sender: TObject);
begin
SetWindowsHookEx(WH_GETMESSAGE,@GetMsgHook, 0,GetCurrentThreadId);
end;

процедура MyLanguage работает без проблем (проверял по нажатию кнопки), а вот когда вызывается при переключении раскладки выполняет с точностью до наоборот.



 
stx   (2002-02-14 10:17) [2]

а чего ты не хочешь воспользоваться компонентом наподобе KeySpy там есть событие onLayoutChange вешаешь на
него свой обработчик и все в порядке



Страницы: 1 вся ветка

Форум: "Система";
Текущий архив: 2002.05.13;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.44 MB
Время: 0.004 c
1-39784
albr
2002-04-26 23:20
2002.05.13
Открытые интерфейсы


1-39694
onix
2002-04-29 14:07
2002.05.13
TRegistry ???


6-39817
VELK
2002-02-27 09:24
2002.05.13
Chat без сервера


14-39847
aaaaa
2002-04-04 14:49
2002.05.13
База данных


1-39740
sergey_kiev_student
2002-04-26 23:22
2002.05.13
Написание компонента





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский