Как имитировать [Ctrl + щелчок левой кнопкой мыши] в центре формы или открыть другую программу и ввести слово? - PullRequest
2 голосов
/ 07 января 2011

Вавилонский словарь и пара других словарей позволяют щелкнуть любое слово в любой программе Windows, автоматически распознать слово под курсором и сразу открыть окно словаря при поиске этого слова в установленных словарях.С другой стороны, вы можете открыть свой словарь, ввести свое слово и нажать Enter, результат будет таким же.

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

Мой вопрос:

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

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

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

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

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

1 Ответ

1 голос
/ 14 апреля 2011

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

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

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

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

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

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

...