2011-01-07 4 views
2

Словарь Babylon и несколько других словарей позволяют щелкнуть любое слово в любой программе Windows и автоматически распознать слово под курсором и сразу открыть окно словаря при поиске этого слова в установленных словарях. С другой стороны, вы можете открыть словарь, ввести свое слово и нажать Enter, результат будет таким же.Как имитировать [Ctrl + левый щелчок мыши] в центре формы или открыть другую программу и ввести слово?

Существует форма Delphi, содержащая текстовую метку, например, со словом «Автомат».

Мой вопрос:

Как отправить слово из моего приложения Delphi прямо в окне словаря, как если бы вы ввели его вручную и нажать Enter?

Лучшее решение - отправить сообщение через механизм Windows, но если это слишком сложно, есть другое решение, поэтому второй ответ: как я описал, нам нужно смоделировать щелчок [Ctrl + левая кнопка мыши] на форме, где это слово отображается на форме [визуальная метка на экране моего приложения Delphi], а точнее, на каком-то центральном пикселе этой метки.

Не могли бы вы дать совет, как сделать то или другое в Delphi?

** Редактировать: Проблема с AppActivate заключается в следующем: у Babylon dict есть часть демона, которая находится в лотке. В диспетчере задач реальное окно, в которое должен быть введен текст, также называется «Вавилон». Итак, AppActivate («Вавилон») пытается вывести вперед невизуальную часть приложения.

Есть ли у вас какое-либо предложение определить дескриптор окон или что-то вроде реальной визуальной части приложения? В диспетчере задач я повторяю как визуальные, так и невизуальные части называются «Вавилон».

+0

Tried 'SendKeys.pas 'и AppActivate(), но, похоже, он не работает с Babylon. – EugeneP

+0

Мне кажется, что речь идет о Вавилоне, а не о Delphi. Легкий бит любой проблемы взаимодействия, как это, обычно находится в коде, который вы контролируете. Жесткие части находятся в коде, который вы не контролируете. Я бы попробовал форумы по документации/поддержке Babylon и т. Д. –

+0

Хорошо, но все же есть какой-либо способ расположить курсор в середине метки формы delphi и имитировать Ctrl + щелчок левой кнопкой мыши на этом пикселе? – EugeneP

ответ

1

Я не могу предложить ответа так много, как некоторые проницательности и советы ...

Есть некоторые приложения, которые «перехватывает» клавиатура и мыши инструкция, и по существу «обнулить» их, если они в настоящее время immitated программного обеспечения. Вообще говоря, вы могли бы видеть это только в надлежащем программном обеспечении AntiVirus, таком как Kaspersky, но ...

Как некоторые (не многие, а некоторые) программы вставляют в себя клавиатуру и мышь в качестве побочного эффекта , ведут себя одинаково. Если вы попытались все советы, приведенные выше, и не можете заставить Вавилон вызвать действие в результате, вероятно, Вавилон ведет себя так, как я описал.

Если я подозреваю, что это правда, то метод, который вы пытаетесь, просто невозможен (по крайней мере, не используя какой-либо простой код Pascal сам по себе ... ASM может это сделать, но это мне известно) ,

Лучшим решением может стать небольшое исследование, чтобы узнать, доступны ли какие-либо из следующих вариантов: 1) Есть ли у Babylon Pipeline или API, который вы можете использовать для взаимодействия с вашими приложениями? 2) Является ли конкретная функциональность, необходимая вам для Вавилона доступной через один (или более) DLL-файлы, распространяемые как часть Вавилона? 3) Есть ли альтернатива использованию Вавилона для ваших нужд?

Я знаю, что это не ответ как таковой (конечно, не тот, который вы хотели бы услышать), но он может указывать на вас в лучшем направлении.