Доступ к COM-интерфейсу приложения с использованием C ++ или C - PullRequest
1 голос
/ 04 января 2009

В ответ на вопрос, как я могу (или найти дополнительную информацию) автоматизировать определенные функциональные возможности без вмешательства пользователя, из C ++ (или C), используя:

  • ATL
  • Или код автоматизации прямо в C / C ++

Привет

Ответы [ 2 ]

3 голосов
/ 04 января 2009

Если приложение предоставляет библиотеку типов (как это делают приложения Microsoft Office), вы можете получить ее из Microsoft C ++ с помощью ключевого слова #import. Это создаст оболочки C ++ для интерфейсов COM, предоставляемых приложением.

Библиотеки типов часто представляют собой файлы .TLB, но они регулярно внедряются как исполняемые файлы Win32 в исполняемые файлы.

Чтобы выяснить, предоставляет ли приложение свои функциональные возможности таким образом, вам, вероятно, потребуется обратиться к документации для конкретного приложения, поскольку обнаружение (и понимание) библиотек типов довольно сложно.

Windows SDK включает в себя инструмент «OLE / COM Viewer», который может отображать информацию о типе библиотеки для COM-объекта в реестре или из файла или ресурса .TLB.

Если вы хотите поиграть с приложением, VBScript (или JScript) даст вам быстрый способ экспериментировать. Они оба способны использовать интерфейсы OLE Automation.

0 голосов
/ 04 января 2009

Под автоматизацией вы понимаете, что у вас должен быть скрипт, который запускает приложение, связывается с ним и выполняет некоторые функции. Что-то вроде сценария автоматического тестирования или что-то в этом роде.

Для этого самый простой способ (если приложение уже существует, такое как Word, Excel, Visual Studio и т. Д.) - это написать скрипт на языке, который поддерживает DCOM (например, Ruby с его библиотекой WIN32OLE), и использовать его для позвоните в приложение.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...