Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.08.12;
Скачать: CL | DM;

Вниз

Переключение раскладки клавиатуры в другом приложении.   Найти похожие ветки 

 
bmai   (2002-06-05 04:31) [0]

Приветствую всех
Вопрос передачи символов в другое приложение тут много раз обсуждался, но есть одна его сторона, которая не затрагивалась (ну либо я не достаточно усердно искал).
Мне понадобилось временно переключить раскладку клавиатуры в другом приложении, в которое мое посылает "нажатия клавиш".
Считываю и запоминаю текущую раскладку так:
tid := GetWindowThreadProcessID(Wnd, @pid);
myhkl := GetKeyboardLayout(tid) And $FFFF;


Требуется что-то типа SetKeyboardLayout(tid, myhkl), а такой функции нет. Кто-нибудь может предложить чем ее заменить?

На данный момент посылаю эмуляцию нажатия Ctrl-Shift и Alt-Shift до тех пор, пока не "дощелкаю" до нужного языка, но от такого способа за свою программу делается стыдно. :)

Заранее спасибо.


 
bmai   (2002-06-05 06:47) [1]

Только что обнаружил рассмотренный 2 недели назад аналогичный вопрос и попробовал вариант
kl:=LoadKeyboardLayout("00000419",KLF_ACTIVATE);
Sendmessage(GetActiveWindow, WM_INPUTLANGCHANGE, 0, kl);

Не знаю, опробовали ли его перед тем как советовать, но по крайней мере у меня и под XP и под W2K переключается раскладка в моем же приложении, а не в другом. Все перепробовал, и sleep ставил после активизации другого окна, перед SendMessage, и даже делал
While (GetActiveWindow <> myHndl) do
Application.ProcessMessages;

где myHndl - тот самый handle, по которому я делаю другое приложение активным.
Ничего не помогает.


 
sizmrebi ©   (2002-06-05 08:31) [2]

ActivateKeyboardLayout();


 
bmai   (2002-06-05 16:02) [3]

2sizmrebi
Делал уже. Тот же эффект - под W2K переключает в окне моей программы, а не в той, которая активна в данный момент.



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

Текущий архив: 2002.08.12;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.012 c
1-35264
beginner25
2002-07-31 11:52
2002.08.12
Проблема с Object Pascal, помогите!!!


14-35462
Baz
2002-07-18 15:49
2002.08.12
Outlook Express


1-35285
Explorer
2002-07-31 08:26
2002.08.12
DBLookupComboBox


8-35384
HellTrooper
2002-04-02 16:41
2002.08.12
Огонь


14-35450
Younick
2002-07-15 10:38
2002.08.12
Странная тенденция или куда мы катимся или ...