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

  • Автор темы Автор темы flamey
  • Дата начала Дата начала
F

flamey

LoadKeyboardLayout / ActivateKeyboardLayout меняют расскладку только для своего приложеня, как поменять для чужого?
 
Из MSDN:
The LoadKeyboardLayout function loads a new input locale identifier (formerly called the keyboard layout) into the system
В системе локаль меняется, а не у отдельного процесса.
 
насколько я понимаю "loads" это не значит что она меняется. LoadKeyboardLayout с флагом KLF_ACTIVATE загружает раскладку и активирует её для текущего потока - это из той же статьи msdn. я не вижу там ничего что бы заставляло менять локаль для всей системы.

вобщем мне надо это сделать для одного, чужого процесса (для которого у меня будет HWND, если это поможет). но не для всей системы.
 
Для: flamey
Отправку WM_INPUTLANGCHANGEREQUEST пробовал?
 
может отправить в тот процесс сообщение нажатия клавиш смены языка?
 
спасибо за ответы. буду пробовать WM_INPUTLANGCHANGEREQUEST. пока искал решение, натолкнулся на http://blogs.msdn.com/michkap/archive/2006/05/16/598980.aspx , где написанно что WM_INPUTLANGCHANGEREQUEST вроде как больше не работает и надо использовать dll injection (а как это делать я не знаю :)). но потом там же обнаружился http://blogs.msdn.com/michkap/archive/2007...11/5397051.aspx , из которого вроде как следует что в большинстве случаев работать должно... или я что-то не так понял :) по любому спасибо, буду дерзать
 
<!--QuoteBegin-gamecreator+3:01:2008, 18:41 -->
<span class="vbquote">(gamecreator @ 3:01:2008, 18:41 )</span><!--QuoteEBegin-->может отправить в тот процесс сообщение нажатия клавиш смены языка?
[snapback]92162" rel="nofollow" target="_blank[/snapback]​
[/quote]
Интересно, а что за сообщение WM_INPUTLANGCHANGEREQUEST? Молодец, красиво примазался!
 
Интересно, а что за сообщение WM_INPUTLANGCHANGEREQUEST?
я не знаю как ответить на этот вопрос - я недопрограммист-самоучка ;) но WM_INPUTLANGCHANGEREQUEST работает! правда судя по ссылкам которые я кинул выше возможно не везде будет работать, но пока меня устраивает - я пишу что-то для облегчение жизни впервую очередь себе, а потом посмотрим.

про dll injection вчера почитал, вроде принцип понял, только не знаю на что hook вешать, какие сообщения ловить и что потом делать для раскладки.

может отправить в тот процесс сообщение нажатия клавиш смены языка?
спасибо, тоже возможно вариант. но где-то в msdn прочитал, что при нажатии этой комбинации клавиш или выбора языка в панели, в поток отправляется WM_INPUTLANGCHANGEREQUEST. так проще самому это сделать - одна строка кода.. поэтому я и не понял обсуждение темы в том msdn-блоге. но я пока весь раздел о языках не прочитал, только отрывки.Для:

European, спасибо за совет!
 
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab

🚀 Первый раз на Codeby?
Гайд для новичков: что делать в первые 15 минут, ключевые разделы, правила
Начать здесь →
🔴 Свежие CVE, 0-day и инциденты
То, о чём ChatGPT ещё не знает — обсуждаем в реальном времени
Threat Intel →
💼 Вакансии и заказы в ИБ
Pentest, SOC, DevSecOps, bug bounty — работа и проекты от проверенных компаний
Карьера в ИБ →

HackerLab