1

我有一个 C# 应用程序,它使用 Microsoft UI 自动化功能,例如像AutomationElement.RootElement.FindFirst(...).

现在我需要在 Delphi 2009 中做同样的事情(使用 MS UI 自动化)。

我怎样才能

a) 声明我的 Delphi 代码使用 MS UI 自动化库和 b) 进行如下调用AutomationElement.RootElement.FindFirst(...)

?

有几个教程(教程 1教程 2)解释了如何打包自己的 .NET 代码以便它可以与 Delphi 一起使用,但在我的情况下,我需要在 Delphi 中使用“预打包”(已经安装)程序集。

更新 1

现在我可以AutomationElement.RootElemeent在一台机器上访问,但它在另一台机器上不起作用。

我怎样才能找出原因,为什么在uiAutomation := CoCUIAutomation.Create;第二台机器上尝试执行失败?

4

1 回答 1

0

如评论中所述,您必须将 UI 自动化类型库(COM 对象)导入您的项目,这可以通过 Delphi 2010 中的“导入组件”向导(组件 -> 导入组件)来完成。

Microsoft 使 COM 对象的接口非常接近于它的 .NET 对应物,因此如果您已经熟悉 .NET 自动化库,那么使用它应该不会有太多麻烦。

于 2013-04-30T11:54:35.827 回答