Индикатор клавиатуры (ru/an) и курсор мыши. Как?

Тема в разделе "WASM.WIN32", создана пользователем vladfind, 22 дек 2005.

  1. vladfind

    vladfind New Member

    Публикаций:
    0
    Регистрация:
    5 дек 2005
    Сообщения:
    64
    Адрес:
    Лен. обл., г. Кириши
    Как сделать так, чтобы отлавливать состояния Ru/En - текущий язык и формировать видоизмененный курсор мыши, например так



    ...**......**

    ...**..и..**

    ...*Ru....*En



    , т.е. добавлять в вид курсора состояние языка. Замучался удалять слова, набранные не на том языке. Может есть у кого решение для Win XX? Поделитесь информацией!
     
  2. cresta

    cresta Active Member

    Публикаций:
    0
    Регистрация:
    13 июн 2004
    Сообщения:
    2.257
    WM_INPUTLANGCHANGE

    в lParam - lang ID
     
  3. vladfind

    vladfind New Member

    Публикаций:
    0
    Регистрация:
    5 дек 2005
    Сообщения:
    64
    Адрес:
    Лен. обл., г. Кириши




    Реестр просмотрел. Не нашёл. Вы бы поподробнее ... куда копать?
     
  4. cresta

    cresta Active Member

    Публикаций:
    0
    Регистрация:
    13 июн 2004
    Сообщения:
    2.257
    Это сообщение от windows, посылаемое в оконную процедуру приложения (WndProc), когда пользователь переключает раскладку клавиатуры. Сопутствующее сообщению значение lParam указывает, какая раскладка включена (Ru/En).

    Копать надо не в реестре, а в msdn.
     
  5. YoungBastard

    YoungBastard New Member

    Публикаций:
    0
    Регистрация:
    29 мар 2005
    Сообщения:
    231
    Адрес:
    Russia
    vladfind

    а причем здесь реестр?! объясни пожалуйста.



    Вся информация по этому сообщению есть на msdn.microsoft.com

    Там еще куча функций будет связанных с ними.

    Не реестра нада копать, а msdn!
     
  6. YoungBastard

    YoungBastard New Member

    Публикаций:
    0
    Регистрация:
    29 мар 2005
    Сообщения:
    231
    Адрес:
    Russia
    cresta

    опередил меня... оффтоп получился =(((



    IceStudent

    IceStudent, извини!
     
  7. cresta

    cresta Active Member

    Публикаций:
    0
    Регистрация:
    13 июн 2004
    Сообщения:
    2.257
    Если я правильно понял, то надо менять курсор в каком-то редакторе кода в соответствие с включенной раскладкой. Если это готовое приложение, которое переделать не получится, то можно написать новую WndProc (в dll), и подгрузить её в адресное пространство этого редактора. В новой WndProc при сообщении WM_INPUTLANGCHANGE загружать соответствующий курсор (например из файла .cur). Остальные сообщения перенаправлять в старую процедуру при помощи CallWindowProc. Это т.н. сабклассинг.
     
  8. vladfind

    vladfind New Member

    Публикаций:
    0
    Регистрация:
    5 дек 2005
    Сообщения:
    64
    Адрес:
    Лен. обл., г. Кириши




    А можно переписать так, чтобы это применялось ко всем текстовым box-ам для WinXX. И, как быть с Win XP, где используются сертификаты к драйверам, библиотекам и система автоматического востановления модифицированных DLL?



    У меня начальные навыки работы с системой WinXX на системном уровне. Так что проявите терпение к BEGINNER
     
  9. cresta

    cresta Active Member

    Публикаций:
    0
    Регистрация:
    13 июн 2004
    Сообщения:
    2.257
    vladfind



    Речь не о том, чтобы переписать существующие dll (в т.ч. системные). Речь о том, чтобы сделать свою dll и грузить её к программе, которая тебя интересует.



    Список программ к которым грузить свою dll, можно составить, просмотрев запущенные приложения на предмет наличия в них дочерних окон интересующего класса, например edit, richedit и т.д.
     
  10. CARDINAL

    CARDINAL Member

    Публикаций:
    0
    Регистрация:
    23 янв 2004
    Сообщения:
    551
    Адрес:
    Moscow
  11. vladfind

    vladfind New Member

    Публикаций:
    0
    Регистрация:
    5 дек 2005
    Сообщения:
    64
    Адрес:
    Лен. обл., г. Кириши


    А что за диалект Паскаля?
     
  12. cresta

    cresta Active Member

    Публикаций:
    0
    Регистрация:
    13 июн 2004
    Сообщения:
    2.257
    .




    Это не диалект. Читай уроки Iczelion'а. Тут на сайте есть цикл статей. А раскладкой клавиатуры и курсором похоже рано заниматься.
     
  13. YoungBastard

    YoungBastard New Member

    Публикаций:
    0
    Регистрация:
    29 мар 2005
    Сообщения:
    231
    Адрес:
    Russia
    vladfind

    из литературы которая есть на русском языке в инете рекомендую почитать Фроловых Библиотека системного программиста 11-14, Ч. Петцольда Программирование Windows 95, Ганеева, Румянцева... Ну, и на последок Рихтера в связке с Соломоном-Руссиновичем "Внутреннее устройство Windows 2000 .3 издание"(в инете есть эл. версия). В магазинах пока есть 4 издание этой чудесной книги за 650 рэ. Ну и MSDN себе поставить не мешало бы!



    PS Твоё усердие в изучении этого материала окупиться с лихвой
     
  14. vladfind

    vladfind New Member

    Публикаций:
    0
    Регистрация:
    5 дек 2005
    Сообщения:
    64
    Адрес:
    Лен. обл., г. Кириши




    А кто выполнить эту задачу за скромные рубли?
     
  15. alpet

    alpet Александр

    Публикаций:
    0
    Регистрация:
    21 сен 2004
    Сообщения:
    1.221
    Адрес:
    Russia
    1. Все таки лучше наверное не ru/an, а ru/en.

    2. И еще - модифицировать растр лучше у каретки, а не курсора мыши. Это более соотносится с текстовым вводом.

    Функции в помощь: CreateCaret, ShowCaret.
     
  16. vladfind

    vladfind New Member

    Публикаций:
    0
    Регистрация:
    5 дек 2005
    Сообщения:
    64
    Адрес:
    Лен. обл., г. Кириши
    Прошу извенить за безграмотность. Тему не исправить. :)
     
  17. CARDINAL

    CARDINAL Member

    Публикаций:
    0
    Регистрация:
    23 янв 2004
    Сообщения:
    551
    Адрес:
    Moscow
    vladfind

    Я тбе уже подкинул 99% решение задачи, что тебе остается, это открыть раздел InternatSHData, и пошарившись по смещениям всё найти, что надо, я видел там не только раскладку для текущего окна, но так же и харрактеристики окна, его ид, процесс, поток и всё прочее, чего там делать то???