Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Win Api
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.01.2016, 13:11   #1
Питерский2
Пользователь
 
Регистрация: 20.05.2014
Сообщений: 29
По умолчанию Как поменять раскладку клавиатуры у чужого процесса?

Два дня уже бьюсь. Имеется хендл окна (принадлежит другому процессу), нужно поменять в нем раскладку на заданную (в семерке у каждого процесса своя раскладка). PostMessage/SendMessage с WM_INPUTLANGCHANGEREQUEST, LoadKeyboardLayout пробовал, не работает, а других решений на форумах не встречал... Помогите пожалуйста. Win7 64 бит.
Питерский2 вне форума Ответить с цитированием
Старый 28.01.2016, 13:36   #2
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,656
По умолчанию

Напиши письмо в поддержку PuntoSwitcher. Если правильно попросишь, ИМХО, не откажут.
Вот тут смотрел?
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...

Последний раз редактировалось min@y™; 28.01.2016 в 13:43.
min@y™ вне форума Ответить с цитированием
Старый 28.01.2016, 16:31   #3
Vapaamies
Ваш К. О.
Участник клуба
 
Аватар для Vapaamies
 
Регистрация: 26.12.2012
Сообщений: 1,755
По умолчанию

Цитата:
Сообщение от Питерский2 Посмотреть сообщение
Два дня уже бьюсь. Имеется хендл окна (принадлежит другому процессу), нужно поменять в нем раскладку на заданную (в семерке у каждого процесса своя раскладка).
Это во всех Виндах так -- по раскладке на процесс.

ЕМНИП, перед изменением раскладки нужно вначале выполнить AttachThreadInput, а потом уже отправлять. Но может оказаться и так, что без внедрения DLL с хуком не обойтись. Неспроста все сторонние программы-переключатели имеют DLL в своем составе...

Кстати, в исходниках keyla можно посмотреть, как она это делает. Программка keyla -- с открытыми исходниками, легко гуглится. Давно перешел на нее с Punto, поскольку мне только переключение одной клавишей нужно. А техподдержка Punto с высокой вероятностью вас пошлет.
Vapaamies вне форума Ответить с цитированием
Старый 28.01.2016, 17:16   #4
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,493
По умолчанию

Кстати, это можно настроить - одна на процесс или одна на всю систему.
waleri вне форума Ответить с цитированием
Старый 28.01.2016, 19:25   #5
Питерский2
Пользователь
 
Регистрация: 20.05.2014
Сообщений: 29
По умолчанию

Спасибо большое всем!
скачал keyla, сейчас разбираюсь.
waleri, как в семерке сделать одну раскладку на всю систему? буду несказанно благодарен, это автопереключение запарило)
Питерский2 вне форума Ответить с цитированием
Старый 28.01.2016, 19:59   #6
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,656
По умолчанию

Цитата:
как в семерке сделать одну раскладку на всю систему?
а разве в 7ке есть такая настройка?
я вот щас поставил 7ку, но не нашёл. мож плохо искал? в 10ке эта опция почти на поверхности.

161.jpg
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 28.01.2016, 20:25   #7
Vapaamies
Ваш К. О.
Участник клуба
 
Аватар для Vapaamies
 
Регистрация: 26.12.2012
Сообщений: 1,755
По умолчанию

Цитата:
Сообщение от Питерский2 Посмотреть сообщение
как в семерке сделать одну раскладку на всю систему?
Через keyla, у нее вроде есть такая настройка.
Vapaamies вне форума Ответить с цитированием
Старый 28.01.2016, 23:43   #8
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
Сообщение от Vapaamies Посмотреть сообщение
Через keyla, у нее вроде есть такая настройка.
keyla максимум эмулирует это.
а начиная с 8-ке это на уровне системы.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 29.01.2016, 00:05   #9
Vapaamies
Ваш К. О.
Участник клуба
 
Аватар для Vapaamies
 
Регистрация: 26.12.2012
Сообщений: 1,755
По умолчанию

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
а начиная с 8-ке это на уровне системы.
О как! Сатья Наделла, видать, большой любитель DOS.
Vapaamies вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Получить раскладку клавиатуры. WorldMaster Win Api 11 28.09.2015 12:45
Как поменять раскладку? IEuro Общие вопросы C/C++ 0 19.03.2013 20:32
Как сменить раскладку клавиатуры YourLastSong Общие вопросы C/C++ 1 17.12.2011 15:16
Вывести на канву раскладку клавиатуры phphel Общие вопросы Delphi 7 06.04.2011 13:02
Переключить раскладку клавиатуры. SKYLINEGTR Помощь студентам 2 02.02.2011 00:50