只要系统被锁定,调用Invoke()方法(从System.Windows.Automation.InvokePattern)就会失败。将我们的项目迁移到.NET 4.5.2后会看到此行为。而在.NET 4.0中,即使系统被锁定,调用也可以工作。当系统被锁定时,UIA InvokePattern.Invoke()会抛出异常。 (在.NET 4.5.2中)
使用的DLL是UIAutomationClient.dll,v4.0.0.0。
我得到的例外是:
System.InvalidOperationException了由用户代码未处理 消息=操作无效由于对象的当前状态。
我知道UIA的GUI测试通常需要系统解锁。由于此调用在.NET 4.0中锁定系统时正常工作,我希望在迁移后具有相同的行为。
您确定它与.NET版本有关吗?在相关的代码中没有任何明确地抛出'InvalidOperationException',所以它可能直接来自COM Automation API。根据文档,“元素不支持InvokePattern控件模式或隐藏或阻止”,所以你所做的绝对不被支持,从来没有。 – Luaan