Поддержка переключения языка в XP по горячим клавишам
Модератор: Дед Пахом
Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Поддержка переключения языка в XP по горячим клавишам
Доработанная библиотека с шаблоном - Поддержка переключения языка в 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, можно попробовать.
НУЖНА ИНФОРМАЦИЯ
ЛЮДИ!!!
Смотрю много скачивает народу библиотеку, и понятно почему, проблема шибко актуальная.
Нужна информация:
1. на каких операционках тестировали.
2. в с сочетании с какими переключателями.
3. Версия Clarion
4. EXE или MULTI DLL приложение.
Библиотека должна работать в любых сочетаниях.
Если это не так, бум дорабатывать.
ЗЫ
по поводу C6, библа под C6.2 Build 9047
Смотрю много скачивает народу библиотеку, и понятно почему, проблема шибко актуальная.
Нужна информация:
1. на каких операционках тестировали.
2. в с сочетании с какими переключателями.
3. Версия Clarion
4. EXE или MULTI DLL приложение.
Библиотека должна работать в любых сочетаниях.
Если это не так, бум дорабатывать.
ЗЫ
по поводу C6, библа под C6.2 Build 9047
Поддержка переключения языка в XP по горячим клавишам
Варианты тестирования следующие:
-------------------------------------------
1. Windows XP Pro rus SP2
2. штатный
3. С55H
4. Multi DLL
-------------------------------------------
1. Windows XP Pro rus SP2
2. Punto Switcher
3. С55H
4. Multi DLL
-------------------------------------------
1. Windows 2000 rus SP4
2. штатный/Punto Switcher
3. С55H
4. Multi DLL
-------------------------------------------
-------------------------------------------
1. Windows XP Pro rus SP2
2. штатный
3. С55H
4. Multi DLL
-------------------------------------------
1. Windows XP Pro rus SP2
2. Punto Switcher
3. С55H
4. Multi DLL
-------------------------------------------
1. Windows 2000 rus SP4
2. штатный/Punto Switcher
3. С55H
4. Multi DLL
-------------------------------------------
теперь все режимы сборки поддерживаются:gudkov писал(а):А варианта для Local сборки не предвидиться?
http://mavcla.arsis.ru/Download/keyboard_xp.zip
ИСХОДНИКИ
Если кому интересно, могу предложить исходники данной библиотеки.
есть вариант такой 19$ (WebMoney), исходники 32 кил
там не только алгоритм переключения, но и алгоритм перехвата любых функций из любых DLL, есть базовые классы, переключалка уже на них сидит, и легко для своих целей заюзать базовые классы в своих проектах. Вся реализация чисто на языке Clarion. Я понимаю что есть вероятность их тиражирования, но на вопросы по исходникам буду отвечать только официальным.
ЗЫ
Время - деньги, я потратил не мало времени на изучение механизмов перехвата функций.
Знаю что многие решают эту проблему установкой стороннего бесплатного переключателя. Потому и отдал решение в виде DLL/LIB/TPL, за исходники хотца вознограждения.
есть вариант такой 19$ (WebMoney), исходники 32 кил
там не только алгоритм переключения, но и алгоритм перехвата любых функций из любых DLL, есть базовые классы, переключалка уже на них сидит, и легко для своих целей заюзать базовые классы в своих проектах. Вся реализация чисто на языке Clarion. Я понимаю что есть вероятность их тиражирования, но на вопросы по исходникам буду отвечать только официальным.
ЗЫ
Время - деньги, я потратил не мало времени на изучение механизмов перехвата функций.
Знаю что многие решают эту проблему установкой стороннего бесплатного переключателя. Потому и отдал решение в виде DLL/LIB/TPL, за исходники хотца вознограждения.
ИСХОДНИКИ
да можно и так, всё равно никто не купитAdmin писал(а):Это типа реклама, а мне процент? :):)
- Andrew Listiev
- Активист
- Сообщения: 166
- Зарегистрирован: 07 Июль 2005, 11:16
- Откуда: Латвия, Рига
- Andrew Listiev
- Активист
- Сообщения: 166
- Зарегистрирован: 07 Июль 2005, 11:16
- Откуда: Латвия, Рига
- Andrew Listiev
- Активист
- Сообщения: 166
- Зарегистрирован: 07 Июль 2005, 11:16
- Откуда: Латвия, Рига
- Andrew Listiev
- Активист
- Сообщения: 166
- Зарегистрирован: 07 Июль 2005, 11:16
- Откуда: Латвия, Рига