| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Системное программирование и WinAPI > Раскладка клавиатуры |
| Автор: CaLaT 20.3.2009, 18:55 | ||
| Как получить раскладку клавиатуры именно текущего окна. Есть пример от товарища Rouse_ , но на дельфи... у меня возникли сложности с переносом в си, кто может помогите плз
|
| Автор: Earnest 20.3.2009, 19:05 |
| Какие тут могут быть сложности? Все эти АПИ-функции доступны и в C и ровно с такими же именами. |
| Автор: CaLaT 20.3.2009, 19:05 | ||
Переписал этот код так:
Но раскладка считывается с моего моего приложения, а не с активного... Help Добавлено @ 19:07 2Earnest: До меня просто долго доходило, что GetCurrentThreadId - это функция) И в си она пишется так -GetCurrentThreadId() |
| Автор: GremlinProg 23.3.2009, 15:10 |
| а ты не задумывался, что в момент вызова GetForegroundWindow, на переднем плане находится именно твое окно? добавляй в мемо к PRIMARYLANGID еще и текст заголовка окна переднего плана, тогда и найдешь ошибку ps: код рабочий, даже без присоединения к чужому потоку (без AttachThreadInput) |
| Автор: CaLaT 23.3.2009, 21:26 |
| Всё, спасибо, нашёл ошибку) Добавлено через 2 минуты и 27 секунд кстати PRIMARYLANGID - удобный такой макрос) |
| Автор: jonie 24.3.2009, 23:07 |
| может кому-то будет интересно. писал когда-то давно (лет эээ.. 6-ть назад если не больше) инликатор раскладки клавиатуры на assembler (MASM x86) в аттаче исходники. устанавается используя inf файл (правой->установить). работает мега тупо (подробности в исходниках) и содержит, вероятно, много ошибок и "хакерских" мест. as is и всё такое. мб кому пригодится, а то у меня пропадет... |