尝试在Delphi中设置UIAutomation时出错

时间:2014-06-20 08:10:27

标签: delphi ui-automation

我试图在SO处遵循建议,使用UIAutomation代替SendKeys等,并获取显示停止错误"访问OLE注册表错误"但是我试着去做。

我在Win7Pro 64位(VMWare)VM中运行XE4。

遵循此处和其他地方的建议,遇到此错误消息:

  • 我使用内置管理员帐户(代替我第一次遇到错误的管理员帐户)。

  • 我在UIAutomationCore.Dll上运行RegSvr32并报告"呼叫RegisterServer成功"。

  • 我将用户帐户控制设置为"从不通知"

  • 我使用"以管理员身份运行"

  • 启动XE4

在XE4中,我转到Component |导入组件|导入ActiveX控件,单击添加并浏览到\ Windows \ System32 \ UIAutomationCore.Dll(或SysWOW64中的版本,我想一个子问题是我应该尝试哪一个,但我得到了相同的错误)。然后我单击打开,我得到一个错误弹出窗口"错误访问OLE注册表"信息。单击“详细信息”按钮显示TLib180.Bpl中发生错误,即对TLibUtils.LoadAndRegisterTypeLibrary的调用。

我不确定我是否错过了一步或做错了什么......

1 个答案:

答案 0 :(得分:2)

创建一个这样的类型库:

  1. 组件|导入组件
  2. 导入类型库
  3. 选择 UIAutomationClient
  4. 点击向导结束,在最后一页上选择创建单位
  5. 点击完成
  6. 现在,您将拥有一个名为UIAutomationClient_TLB的类型库派生单元,您可以像使用任何其他单元一样使用它。您可以通过以下方式访问IUIAutomation界面:

    Automation := CoCUIAutomation.Create;
    

    此时你已经开始运作了。

    您不需要注册任何内容。这是已注册的系统组件。您真的不需要更改UAC设置或升级。