2014-06-20 16 views
0

我想跟隨在這裏的意見,以使用UIAutomation代替喜歡SendKeys等,並獲得顯示停止錯誤「錯誤訪問OLE註冊表」,但我嘗試去做。錯誤試圖設置UIAutomation在德爾福

我在Win7Pro 64位(VMWare)虛擬機中運行XE4。

這裏和其他地方以下建議有關遇到此錯誤messaage:

  • 我使用的是內置的Administrator帳戶(以地方我自己的管理員帳戶在那裏我第一次遇到的錯誤)。

  • 我已經在UIAutomationmationCore.Dll上運行RegSvr32,它報告「調用RegisterServer成功」。

  • 我有用戶帳戶控制設置爲「從不通知」

  • 我使用「以管理員身份運行」

在XE4開始XE4,我去組件|導入組件|導入ActiveX控件,單擊添加並瀏覽到\ Windows \ System32 \ UIAutomationCore.Dll(或SysWOW64中的版本,我認爲子問題是我應該嘗試的哪一個,但是我得到與它們中的任何一個相同的錯誤)。然後,我單擊「打開」,出現「訪問OLE註冊表錯誤」消息時彈出的錯誤消息。單擊詳細信息按鈕顯示錯誤發生在TLib180.Bpl中,即對TLibUtils.LoadAndRegisterTypeLibrary的調用。

我不知道是否我缺少一個步驟,或者做錯了什麼......

回答

2

創建一個類型庫是這樣的:

  1. 組件|導入組件
  2. 導入類型庫
  3. 選擇UIAutomationClient
  4. 單擊到嚮導的末尾並在最後一頁上選擇創建單元
  5. 點擊完成

您現在將擁有一個名爲UIAutomationClient_TLB的類型庫派生單位,您可以像使用其他類型一樣使用它。您可以使用以下接口訪問IUIAutomation接口:

Automation := CoCUIAutomation.Create; 

並且在那一點,您已啓動並運行。

你不需要註冊任何東西。這是一個已經註冊的系統組件。你真的不需要改變UAC設置,或者運行提升。

+0

在閱讀您的答案之前,我發現了這一刻,但無論如何非常感謝。 「你真的不需要改變UAC設置,或者運行提升。」 - 確實。然而,關於「已經註冊」,我不是100%確定的,但我可以發誓沒有在類型庫彈出窗口中以「uia」開頭,直到我使用RegSvr32之後 - 我會嘗試回滾VM稍後再檢查。 – MartynA