Вызов метода 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 был необработанным кодом пользователя Message = Операция недопустима из-за текущее состояние объекта.
Я знаю, что тестирование графического интерфейса с МАУ обычно требует разблокировки системы. Поскольку этот вызов работал, когда система заблокирована в .NET 4.0, я бы хотел иметь такое же поведение после миграции.
Вы уверены, что это имеет какое-либо отношение к версии .NET? Нет ничего явно бросать 'InvalidOperationException' в соответствующий код, поэтому он, скорее всего, поступает из COM Automation API напрямую. И согласно документации: «Элемент не поддерживает шаблон управления InvokePattern или скрыт или заблокирован», поэтому то, что вы делаете, определенно не поддерживается и никогда не было. – Luaan