Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2011.08.07;
Скачать: [xml.tar.bz2];

Вниз

ABBYY тормозит мою программу. Не пойму, каким образом...   Найти похожие ветки 

 
И. Павел ©   (2011-04-14 08:12) [0]

Здравствуйте.

У меня есть программа на Delphi. В ней есть EhGrid (аналог TDBGrid в EhLib). Когда пользователь запускает программу ищелкает по этой таблице мышью, чтобы сменить активную строчку, программа зависает, и только через некоторое время вызывается AfterScroll для соответствующего ADODataSet. Оказалось, что виновником является Abbyy. Зависания происходят, когда в Abbyy Lingvo включена функция перевода слов под курсором. Причем он распознает слова, содержащиеся в TDbEhGrid, хоть они там просто на канве рисуются (видимо, считывает канву и распознает, если вообще свой код не встраивает). Ловил WM_GETTEXT - кажется, не приходит (да и не было бы от него толку, т.к. в Grid текст просто рисуется на канве).

Подскажите, пожалуйста, что Abbyy Lingvo делает с программами, и как это делает? Может быть, кто-то с этим уже сталкивался?

PS: Версия Abby - x3. В их техподдерхку уже написал, но они пока не чешутся, и, учитывая то, что их программа способна выцарапать и распознать текст буквально отовсюду, сомневаюсь, что без мелкого хакерства обошлось...

Заранее спасибо.


 
KSergey ©   (2011-04-14 08:46) [1]

> Причем он распознает слова, содержащиеся в TDbEhGrid, хоть они там просто на канве рисуются (видимо, считывает канву и распознает,
> если вообще свой код не встраивает).


Не верю в распознавание.
А остальные программы - не тормозят?
Где ловили WM_GETTEXT? у самого грида? скорее его надо ловить у встраиваемого Edit на месте ячейки (инфа в гриде редактируется?)


 
И. Павел ©   (2011-04-14 09:06) [2]

> А остальные программы - не тормозят?

Спасибо за идею. Сейчас проверил в другой своей программе - на одной таблице тормозит, а на другой - нет. Обк таблицы - EhGrid. Буду искать отличия.
А вот сторонние программы серьезно не тормозят (есть небольшие подвисания, и довольно длинное подвисание в момент открытия окна перевода).

> инфа в гриде редактируется?)

Нет. Грид не редактируемый (у пользователя нет такой возможности). Например, подвожу курсор к ячейке грида, которая даже не выбрана, и Abbyy мне показывает ее текст и перевод.
Кстати, он даже текст из картинок/схем мождет извлекать - очень удобно при чтении английской документации, но видимо есть и минусы.

http://s003.radikal.ru/i201/1104/a6/e4f447d1f470.jpg


 
OW ©   (2011-04-14 09:25) [3]

у Abbyy  настройки должны быть, имхо


 
И. Павел ©   (2011-04-14 09:30) [4]

> [3] OW ©   (14.04.11 09:25)
> у Abbyy  настройки должны быть, имхо

В настройках можно отключить автоматический перевод. Но этой программой пользуются очень многие. В т.ч. и переводчики (у них и обнаружилась эта ошибка). А им функция автоматического перевода нужна.


 
sniknik ©   (2011-04-14 09:34) [5]

> т.к. в Grid текст просто рисуется на канве
он что DrawGrid? сам рисуешь? потому, что ни один из мне известных так не делает.

> Где ловили WM_GETTEXT?
а вот эта функция "в нутрях" через него работает?
http://www.delphimaster.net/view/2-1277667083/all
проверил бы...


 
И. Павел ©   (2011-04-14 10:28) [6]

> Где ловили WM_GETTEXT?

И на уровне окна таблицы, у на уровне всего приложения.


> а вот эта функция "в нутрях" через него работает?
> http://www.delphimaster.net/view/2-1277667083/all
> проверил бы...

Ни accName ни accValue не посылают WM_GetText. И моя программа из за них не подтормаживает.
Подскажите, пожвлуйста, можно ли как-нибудь запретить Windows отдавать лбъект EhGrid чужим приложениям? Проще говоря сделать так, чтобы любой вызов Succeeded(AccessibleObjectFromPoint(P, A, V)) для окон моей программы возвращал false?


 
Inovet ©   (2011-04-15 00:03) [7]

> [4] И. Павел ©   (14.04.11 09:30)
> А им функция автоматического перевода нужна.

Можно не по наведению мыши настроить, а в сочетании с Ctrl. А то окно перевода везде вылазит.


 
И. Павел ©   (2011-04-15 08:08) [8]

> [7] Inovet ©   (15.04.11 00:03)

Я тоже у себя через ctrl делаю, когда что-то английское читаю.
Но у наших переводчиков почему-то настроен автоматический перевод всего. Видимо, потому что они переводами по 8 ч. в день занимаются, а может быть действительно просто не знают. как отключить.

Но это вариант, спасибо. Если не удастся защитить программу он "штурма" со стороны Abbyy Lingvo, просто попрошу администраторов при установке переводчика в настройках включать перевод по нажатию ctrl.


 
Inovet ©   (2011-04-15 10:27) [9]

Кстати, для информации, может чем поможет. В ИЕ9 всплывающий перевод перестал работать. Так были и в 11-й версии на ИЕ8 на Вин7, тогда в техподдержке ничего умнее не сказали, как UAC отключить, типа ответили формально правильно. В Lomgvo x3 это как-то учли, теперь вот с ИЕ9 снова повторяется.


 
И. Павел ©   (2011-04-15 11:36) [10]

> [9] Inovet ©   (15.04.11 10:27)

Спасибо.

В техподдержке сказали, что передали мое письмо разработчикам. Посмотрю, что они скажут. Надеюсь, что у них найдется какой-нибудь способ для исключения моей программы из обработки Lingvo, т.к., скорее всего, мой случай не первый.


 
Inovet ©   (2011-04-15 12:08) [11]

> [9] Inovet ©   (15.04.11 10:27)
> Так были и в 11-й версии на ИЕ8 на Вин7

Не в 12-й, нынешняя x3 это же 13-я. Собственно в 12-й и появилась эта возможность перевода на лету.


 
dmk ©   (2011-04-15 14:41) [12]

>скорее всего, мой случай не первый
Угу. У меня Абби тоже тормозит все что только можно.



Страницы: 1 вся ветка

Форум: "Прочее";
Текущий архив: 2011.08.07;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.48 MB
Время: 0.004 c
15-1302754323
И. Павел
2011-04-14 08:12
2011.08.07
ABBYY тормозит мою программу. Не пойму, каким образом...


15-1303058133
NailMan
2011-04-17 20:35
2011.08.07
Рычим, коптим, портим воздух выхлопом


1-1261155802
Дмитрий Белькевич
2009-12-18 20:03
2011.08.07
for in - можно ли добраться до переменной итератора?


15-1303035864
Пит
2011-04-17 14:24
2011.08.07
Очень нужен совет от тех, кто разбирается в биллинге


6-1239719308
sasha73
2009-04-14 18:28
2011.08.07
TidPOP3 заголовки не всех писем получает. Как заставить?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский