Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.88/8: Рейтинг темы: голосов - 8, средняя оценка - 4.88
13 / 13 / 0
Регистрация: 14.04.2012
Сообщений: 158
1

Как для неактивного окна применить клавиатуру активного

31.05.2012, 22:48. Показов 1626. Ответов 11
Метки нет (Все метки)

Надо понять, как для неактивного окна применить клавиатуру активного. Сам момент есть только как это сделать.
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
31.05.2012, 22:48
Ответы с готовыми решениями:

Как автофильтр из активного окна применить ко всем остальным
Добрый день. Пытаюсь сделать автофильтр который будет применяться в активном листе, а далее...

Как применить заплатки для неактивного реестра
Приветствую Предистория:был вирус,удолил его,он прописался в реестре,нашол где,снёс запись....

События активного и неактивного компонента
Доброго времени суток! Подскажите какие события возникают когда компонент(TextBox) активный и когда...

Отправка текста для неактивного окна блокнота
Доброй ночи, уважаемые обитатели форума. Пишу не большую программку, которая при нажатии...

11
Эксперт С++
8297 / 6128 / 613
Регистрация: 10.12.2010
Сообщений: 28,659
Записей в блоге: 30
31.05.2012, 22:55 2
Ну там что то про хук пишут но я чет не понял как можно это сделать
0
13 / 13 / 0
Регистрация: 14.04.2012
Сообщений: 158
01.06.2012, 00:54  [ТС] 3
помогите
неужели никто не знает?
C++
1
2
3
4
char KBLayout[64];
     GetKeyboardLayoutName(KBLayout);
     if (strcmp(KBLayout,"00000419") == 0)
     ...
пробовал так, тащит только при активном окне =(

Добавлено через 1 час 12 минут
АПАПАП!
0
4036 / 2326 / 292
Регистрация: 03.02.2011
Сообщений: 5,066
Записей в блоге: 10
01.06.2012, 07:39 4
Ловить в своей программе WM_KEYDOWN, WM_KEYUP и через PostMessage(), SendMessage() дублировать их в целевом окне. Ну, или ставить хук, давать ему команды, а он уж будет эмулировать нажатия.
1
13 / 13 / 0
Регистрация: 14.04.2012
Сообщений: 158
02.06.2012, 12:20  [ТС] 5
Надо понять, как для неактивного окна применить клавиатуру активного.сам момент имеется..
долго копался в винапи справочнике там много всего похожего но осилить не смог =( помогите плз

Добавлено через 11 часов 33 минуты
upupup
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
31466 / 20513 / 7988
Регистрация: 22.10.2011
Сообщений: 35,630
Записей в блоге: 7
02.06.2012, 12:30 6
GetWindowThreadProcessId - получил по hwnd идентификатор треда, подключил к этому треду ввод через AttachThreadInput, загрузил раскладку (Loadkeyboardlayout) и выслал сообщение WM_INPUTLANGCHANGEREQUEST, вернул ввод своему потоку. Что не получается?
1
13 / 13 / 0
Регистрация: 14.04.2012
Сообщений: 158
02.06.2012, 13:41  [ТС] 7
как ни странно пробовал примерно так
что не получилось не смогу сказать я немного нулёвый..
напиши пожалуйста образец
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
31466 / 20513 / 7988
Регистрация: 22.10.2011
Сообщений: 35,630
Записей в блоге: 7
02.06.2012, 15:28 8
Не надо даже приаттачиваться в другой тред:
C++
1
2
3
4
    DWORD foo;
    HKL layout = LoadKeyboardLayout(L"00000419", KLF_ACTIVATE);
    SendMessageTimeout(hwnd, WM_INPUTLANGCHANGEREQUEST,
                       0, LPARAM(layout), SMTO_ABORTIFHUNG, 200, &foo);
прекрасно меняет из активного приложения в неактивном раскладку на русскоязычную (проверял на NotePad-е, окно искалось вот так:
C++
1
2
    HWND hwnd = FindWindow(NULL, _T("Untitled - Notepad"));
    hwnd = FindWindowEx(hwnd, 0, _T("Edit"), NULL);
). Я надеюсь, с получением раскладки активного окна (чтоб ее потом переслать в неактивное) проблем не будет?
1
13 / 13 / 0
Регистрация: 14.04.2012
Сообщений: 158
02.06.2012, 16:22  [ТС] 9
мне кажется ты не то объясняешь или я просто не понимаю..сори
ситуация:моё окно свёрнуто, юзер жмёт забинденую registerhotkey кнопку в активном многострадальном ноутпаде
вот тут надо понять какая раскладка в этот момент в ноутпаде..
я по прежнему туповат так что пожалуйста помоги полным кодом а не словами =( спасибо
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
31466 / 20513 / 7988
Регистрация: 22.10.2011
Сообщений: 35,630
Записей в блоге: 7
02.06.2012, 16:41 10
А теперь перечитай начальный вопрос, и подумай, что тебе надо, из неактивного приложения получить раскладку в активном, или из активного поменять раскладку в неактивном (что, собственно, и было написано в первом посте)

Вот так обрабатывается WM_HOTKEY:
C++
1
2
HKL lt = GetKeyboardLayout(GetWindowThreadProcessId(GetForegroundWindow(), NULL));
DWORD dw = (DWORD)lt & 0xFFFF;
Всё, в dw у тебя номер раскладки, которая выбрана в активном окне.
1
13 / 13 / 0
Регистрация: 14.04.2012
Сообщений: 158
02.06.2012, 17:50  [ТС] 11
тема разрешилась легко, быстро и без хука по системному блоку
https://www.cyberforum.ru/win-... 93883.html
0
13 / 13 / 0
Регистрация: 14.04.2012
Сообщений: 158
03.06.2012, 01:45  [ТС] 12
сори я постораюсь точнее выражаться

Цитата Сообщение от UI Посмотреть сообщение
HKL lt = GetKeyboardLayout(GetWindowThreadProcessId(GetForegroundWind ow(), NULL));
DWORD dw = (DWORD)lt & 0xFFFF;
спасибо большое помог на все 100%

Добавлено через 19 минут
правда есть дополнение случайно заметил в браузере(у меня ИЕ)даже с единственной вкладкой
определяет всегда анг языком хотя жать могу рус с чем может быть связано?

Добавлено через 7 часов 38 минут
лооол в фаер фоксе работает первый раз в жизни я рад тому что сущетвует фаерфокс
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.06.2012, 01:45

Как применить собственную клавиатуру?
Всем привет) Я сделал свою клавиатуру но не подумал об этом( как прошить его к девайсу?? прогуглил...

Как получить текущую раскладку клавиатуры для чужого активного окна?
Что нужно передавать в GetKeyboardLayout для того, чтобы получить раскладку активного чужого окна,...

Как получить цвет пикселя неактивного окна?
для получения цвета пикселя экрана использую этот код Private Declare Function GetPixel Lib...

Получить цвет пикселя из неактивного окна, перекрытого другими окнами окна
Можно ли получить цвет пикселя из неактивного или перекрытого другими окна? Какие есть способы?...

Код для копирования текста с активного окна MS Word
есть у кого пример кода для копирования текста с активного окна ворд в "текстбокс"? Спасибо...

Узнать класс активного окна - Как?
предварительно класс окон можно узнать например с Spy++, а как быть если приложение, дескриптор...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru