В ответ на вопрос, как я могу (или найти дополнительную информацию) автоматизировать определенные функциональные возможности без вмешательства пользователя из C++ (или C), используя:
- АТЛ
- Или код автоматизации непосредственно в C/C++
С уважением
В ответ на вопрос, как я могу (или найти дополнительную информацию) автоматизировать определенные функциональные возможности без вмешательства пользователя из C++ (или C), используя:
С уважением
Если приложение предоставляет библиотеку типов (как и приложения Microsoft Office), вы можете получить ее из Microsoft C++, используя ключевое слово #import. Это создаст оболочки C++ для COM-интерфейсов, предоставляемых приложением.
Библиотеки типов часто представляют собой файлы .TLB, но они регулярно встраиваются как ресурсы Win32 в исполняемые файлы.
Чтобы выяснить, раскрывает ли приложение свою функциональность таким образом, вам, вероятно, потребуется обратиться к документации по конкретному приложению, потому что обнаружение (и понимание) библиотек типов довольно сложно.
Windows SDK включает инструмент «OLE/COM Viewer», который может отображать информацию о библиотеке типов для COM-объекта в реестре или из файла или ресурса .TLB.
Если вы хотите поиграть с приложением, VBScript (или JScript) даст вам быстрый способ поэкспериментировать. Оба они могут использовать интерфейсы OLE Automation.
Под автоматизацией вы подразумеваете наличие сценария, который запускает приложение, взаимодействует с ним и выполняет некоторые функции. Что-то вроде автоматического тестового сценария или что-то в этом роде.
Для этого самый простой способ (если приложение уже существует, например Word, Excel, Visual Studio и т. д.) — написать сценарий на языке, поддерживающем DCOM (например, Ruby с его библиотекой WIN32OLE), и использовать его для вызова в заявление.
Если вы разрабатываете приложение, то это становится сложнее, вы, вероятно, могли бы встроить существующий язык сценариев в свой исполняемый файл и предоставить способ взаимодействия с ним. Возможно, у вас есть опция командной строки для автоматического запуска скрипта в контексте вашего приложения. Или, если вы хотите выполнить серьезную работу по разработке, вы можете попробовать добавить в DCOM (я не пробовал это, поэтому я не знаю, сколько работы требуется).