AkelPad и захват слов переводчиком (GoldenDict)
Posted: Sat Dec 17, 2011 12:10 pm
Можно ли что-то сделать на предмет совместимости AkelPad со сторонними программами для перевода текста?
На примере GoldenDict:
Алгоритм вытаскивания слова работает так: GD перехватывает вывод функций TextOut и ExtTextOut, подменяя в таблицах импорта целевой программы и её модулей ссылки на них на свои. А когда приходит время вытащить слово, требует перерисовать тонкую линию во всю ширину окна под курсором и ловит вывод этих функций, смотря, какой строке соответствует позиция курсора. Так вот, AkelPad вместо того, чтобы вывести всю строку за раз, вызывает функцию вывода для каждого символа отдельно. Вот GD только один символ и ловит - тот, что под курсором.
На примере GoldenDict:
Алгоритм вытаскивания слова работает так: GD перехватывает вывод функций TextOut и ExtTextOut, подменяя в таблицах импорта целевой программы и её модулей ссылки на них на свои. А когда приходит время вытащить слово, требует перерисовать тонкую линию во всю ширину окна под курсором и ловит вывод этих функций, смотря, какой строке соответствует позиция курсора. Так вот, AkelPad вместо того, чтобы вывести всю строку за раз, вызывает функцию вывода для каждого символа отдельно. Вот GD только один символ и ловит - тот, что под курсором.