Поддержка переключения языка в XP по горячим клавишам
Добавлено: 12 Октябрь 2005, 14:55
Доработанная библиотека с шаблоном - Поддержка переключения языка в XP по
горячим клавишам. Персональное спасибо Звигинцеву Михаилу за обнаруженный
баг при работе не под XP.
Теперь обрабатываются следующие функции:
OPEN(WINDOW)
OPEN(WINDOW,WINDOW)
CREATE new control
CLONE
Собственно этот набор функий и нужен, если какую то функцию и упустил,
подскажитье какую, CLOSE и DESTROY не рассматриваются, вместо них юзаются
соответсвующие виндузовые события.
Файлик там же:
http://www.clarionlife.net/cgi-bin//bl_ ... ard_xp.zip
Суть метода заключается в перехвате этого списка функций на свои, в который вызываются оригинальные функции с доб обработкой до и после вызова. Метод безболезненный, их много и этот самый правильный, в таблице иморта каждой загрузочной DLL ки и EXE модуля меняется адрес функции на адрес функции перехватчика.
Регистрировать шаблон надо для одного проекта один раз в любом APP из общего проекта, по хорошему, это должна быть та APP которая юзается в разных проектах, или по простому в той APP, где Global Data Not External
Шаблон делает в головном модуле APP ВСЕГО ОДНУ ВСТАВКУ:
! **************** XP Keyboard Switcher ***************************
_mavkbdxpLinkMode_ EQUATE(0)
_mavkbdxpDllMode_ EQUATE(1)
INCLUDE('A1KeyboardXP.INC'),ONCE
xpKeyboardSwitcher A1KeyboardXP
! **************** XP Keyboard Switcher ***************************
и подключает нужную библиотеку к проекту, в конструкторе A1KeyboardXP происходит один раз соответсвующая инициализация - перехват, в самих процедурах ничего дополнительного вставлять не надо, была раньше идея написать просто шаблон который внедряется в шаблонные окошки и делает там соответсвующие вставки, но , блин, есть и рукописные окошки, и что получается, туда надо всё ручками вставлять и опять все пересобирать.
Хотелось бы узнать, на каких операционках данная идея работает, и с какими дополнительными переключалками языков, по хорошему если в каком то сочетании библа не будет корректно работать, бум смотреть и дорабатывать. Главное - нужна эта информация.
ЗЫ
Тут мысля приша, если перехватить все файловые функции, а их не так уж много, то можно заставить работать существующее FILE,DRIVER приложение по технологии MAV, MAV - это GROUP, у FILE,DRIVER в качестве GROUP будет её RECORD, можно попробовать.
горячим клавишам. Персональное спасибо Звигинцеву Михаилу за обнаруженный
баг при работе не под XP.
Теперь обрабатываются следующие функции:
OPEN(WINDOW)
OPEN(WINDOW,WINDOW)
CREATE new control
CLONE
Собственно этот набор функий и нужен, если какую то функцию и упустил,
подскажитье какую, CLOSE и DESTROY не рассматриваются, вместо них юзаются
соответсвующие виндузовые события.
Файлик там же:
http://www.clarionlife.net/cgi-bin//bl_ ... ard_xp.zip
Суть метода заключается в перехвате этого списка функций на свои, в который вызываются оригинальные функции с доб обработкой до и после вызова. Метод безболезненный, их много и этот самый правильный, в таблице иморта каждой загрузочной DLL ки и EXE модуля меняется адрес функции на адрес функции перехватчика.
Регистрировать шаблон надо для одного проекта один раз в любом APP из общего проекта, по хорошему, это должна быть та APP которая юзается в разных проектах, или по простому в той APP, где Global Data Not External
Шаблон делает в головном модуле APP ВСЕГО ОДНУ ВСТАВКУ:
! **************** XP Keyboard Switcher ***************************
_mavkbdxpLinkMode_ EQUATE(0)
_mavkbdxpDllMode_ EQUATE(1)
INCLUDE('A1KeyboardXP.INC'),ONCE
xpKeyboardSwitcher A1KeyboardXP
! **************** XP Keyboard Switcher ***************************
и подключает нужную библиотеку к проекту, в конструкторе A1KeyboardXP происходит один раз соответсвующая инициализация - перехват, в самих процедурах ничего дополнительного вставлять не надо, была раньше идея написать просто шаблон который внедряется в шаблонные окошки и делает там соответсвующие вставки, но , блин, есть и рукописные окошки, и что получается, туда надо всё ручками вставлять и опять все пересобирать.
Хотелось бы узнать, на каких операционках данная идея работает, и с какими дополнительными переключалками языков, по хорошему если в каком то сочетании библа не будет корректно работать, бум смотреть и дорабатывать. Главное - нужна эта информация.
ЗЫ
Тут мысля приша, если перехватить все файловые функции, а их не так уж много, то можно заставить работать существующее FILE,DRIVER приложение по технологии MAV, MAV - это GROUP, у FILE,DRIVER в качестве GROUP будет её RECORD, можно попробовать.