【发布时间】:2009-01-04 00:50:31
【问题描述】:
在回答问题时,我如何(或找到更多信息)自动化某些功能无需用户干预,从 C++(或 C)使用:
- ATL
- 或直接用 C/C++ 编写自动化代码
问候
【问题讨论】:
在回答问题时,我如何(或找到更多信息)自动化某些功能无需用户干预,从 C++(或 C)使用:
问候
【问题讨论】:
如果应用程序公开了一个类型库(Microsoft Office 应用程序也公开了),那么您可以通过使用#import 关键字从 Microsoft C++ 获取它。这将为应用程序公开的 COM 接口创建 C++ 包装器。
类型库通常是 .TLB 文件,但它们通常作为 Win32 资源嵌入在可执行文件中。
要确定应用程序是否以这种方式公开其功能,您可能需要查阅特定应用程序的文档,因为发现(和理解)类型库非常复杂。
Windows SDK 包含一个工具“OLE/COM 查看器”,它可以显示注册表中 COM 对象或来自 .TLB 文件或资源的类型库信息。
如果您想使用应用程序,VBScript(或 JScript)为您提供了一种快速试验的方法。它们都能够使用 OLE 自动化接口。
【讨论】:
自动化是指能够拥有一个运行应用程序、与之通信并执行某些功能的脚本。类似于自动化测试脚本之类的东西。
为此,最简单的方法(如果应用程序已经存在,例如 Word、Excel、Visual Studio 等)是用支持 DCOM 的语言(例如 Ruby 及其 WIN32OLE 库)编写脚本并使用它来调用应用程序。
如果您正在开发一个应用程序,那么这会变得更加棘手,您可以将现有的脚本语言嵌入到您的可执行文件中,并提供一种与之交互的方法。也许有一个命令行选项可以在应用程序的上下文中自动运行脚本。或者如果你想做一些严肃的开发工作,你可以尝试在 DCOM 中添加(我没有尝试过,所以我不知道涉及多少工作)。
【讨论】: