2015-09-03 1 views
2

Вызов метода 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, я бы хотел иметь такое же поведение после миграции.

+0

Вы уверены, что это имеет какое-либо отношение к версии .NET? Нет ничего явно бросать 'InvalidOperationException' в соответствующий код, поэтому он, скорее всего, поступает из COM Automation API напрямую. И согласно документации: «Элемент не поддерживает шаблон управления InvokePattern или скрыт или заблокирован», поэтому то, что вы делаете, определенно не поддерживается и никогда не было. – Luaan

ответ

1

Согласно документации, InvalidOperationException выбрасываются при

Элемент не поддерживает InvokePattern шаблона управления или скрыт или заблокирован.

Это полностью возвращается к .NET 3.0 и в любом случае не обрабатывается платформой .NET (она находится в базовых COM-API), поэтому это маловероятно, что это имеет какое-либо отношение к .NET. версия.

0

Я бы не рекомендовал ничего делать с графическим интерфейсом, когда система заблокирована. В этом случае контекст GUI теряется. Таким образом, вы даже не можете программно передавать клавиатуру или мышь. Но вы можете хранить сеанс удаленного рабочего стола (или сервера VNC) в режиме окна, без минимизации, с потерянным фокусом. Контекст GUI жив, вы можете работать на локальной машине в другом окне параллельно с скриптом автоматизации GUI на удаленном ПК.

Смежные вопросы