2017-02-10 70 views
0

我想使用UI自動化。如其他問題(https://stackoverflow.com/a/41768047/3402056)中所述,不建議使用System.Windows.Automation。所以我的問題 - 如何在PowerShell中使用COM IUIAutomation?如何在PowerShell中使用IUIAutomation?

有一個帶有-ComObject參數的commandlet New-Object。該參數接受可創建的CoClass的名稱?我在哪裏可以得到它?

+0

嗨,你想做什麼? – sodawillow

+0

我嘗試獲取IUIAutomation COM對象。 'New-Object -ComObject IUIAutomation'不起作用。 – dartNNN

+0

這是因爲它的接口名稱。您必須提供可創建的CoClass的名稱。 – Ben

回答

1

System.Windows.Automation是有點過時,但:

  • 它適用於大多數操作不夠精細,而且我不鏈接的文章中提到的涉及到它的過時的事實確定性能問題。
  • 它依賴於,它包含了所有的新代碼反正所以我的猜測System.Windows.Automation間接使用新的COM對象下面的本機提供的Windows UIAutomationCore.dll組裝。
  • 我相信它是您可以在PowerShell中使用的唯一API,因爲您只能使用COM自動化對象(不要與System.Windows.Automation混淆),即:.NET,VB6,腳本等不是純粹的IUnknown (不是IDispatch)接口。

正如你可以使用UI Automation COM-to-.NET Adapter這是UIAutomationClient組件(由微軟的傢伙寫的)的較新版本的選擇,但如果你需要在Windows 8 UIA新的屬性和模式,或者如果這僅僅是必要的觀察它確實對你更好。