Tengo una aplicación que realiza cierta automatización en una aplicación de Windows arbitraria. He estado usando el Bloc de notas para probarlo.UIAutomation and Remote Desktop Connections
Durante esta automatización, tengo que invocar eventos desde el código. Actualmente apoyo dos tipos de eventos, ya que parecen ser los más comunes, InvokePattern y ExpandCollapsePattern.
Utilizo una computadora que puedo remotamente para hacer las pruebas. Pero es extraño. Cuando estoy conectado a la computadora a través de Escritorio remoto, la aplicación funciona bien. Cuando me desconecto de la computadora, mi código deja de funcionar para ExpandCollapsePattern (InvokePattern funciona bien). Obtengo una InvalidOperationException.
La documentación dice que esto solo debe lanzarse si el nodo está marcado como un LeafNode. ¿Qué hace que Remote Desktop sea diferente al obtener InvalidOperationException?
Aquí está el código que actualmente tengo para realizar el evento.
ExpandCollapseState state =
patternMenu.Current.ExpandCollapseState;
if (state == ExpandCollapseState.Expanded)
patternMenu.Collapse();
else if (state == ExpandCollapseState.PartiallyExpanded ||
state == ExpandCollapseState.Collapsed)
patternMenu.Expand();
patternMenu es un ExpandCollapsePattern recibido de la AutomationElement usando GetCurrentPattern.
El valor actual de ExpandCollapseState es "Contraído" cuando imprimo el valor.
EDIT: ¿Alguna posibilidad de que pueda saber por qué obtuve un voto negativo y cómo esta es una mala pregunta? Estoy realmente confundido de lo que está sucediendo, ya que solo parece fallar cuando se cierra el escritorio remoto. Si esta es una pregunta realmente tonta de la que debería saber la respuesta, me encantaría una explicación y luego un voto negativo.
El proceso que interactúa con el escritorio no es un servicio de Windows. Es una aplicación que comienzo después de que el escritorio remoto en la computadora. ¿Es porque estoy bloqueando el escritorio?
Estoy usando "Terminal Server Client" en Ubuntu para iniciar sesión en la máquina con Windows. Al presionar el botón de cerrar en esta aplicación, ¿se bloquea el escritorio?
Pensé que funcionaba bien cuando el escritorio se bloqueó , pero estaba equivocado.El último resultado de prueba comenzó a fallar tan pronto como el escritorio se bloqueó. Comenzaré a configurar una VM para ejecutar las pruebas en lugar de usar el escritorio remoto. Gracias. –