임의의 Windows 응용 프로그램에서 자동화 기능을 수행하는 응용 프로그램이 있습니다. 나는 그것을 테스트하기 위해 메모장을 사용 해왔다.UIAutomation 및 원격 데스크톱 연결
이 자동화 중에 코드에서 이벤트를 호출해야합니다. 현재 두 가지 유형의 이벤트 (가장 일반적인 것인데, InvokePattern 및 ExpandCollapsePattern)를 지원합니다.
나는 원격 데스크톱을 통해 테스트를 수행 할 수있는 컴퓨터를 사용합니다. 그러나 그것은 이상합니다. 원격 데스크톱을 통해 컴퓨터에 연결하면 응용 프로그램이 정상적으로 작동합니다. 컴퓨터에서 연결을 끊으면 내 코드가 ExpandCollapsePattern (InvokePattern은 정상적으로 작동 함)에서 작동하지 않습니다. InvalidOperationException이 발생합니다.
설명서에 노드가 LeafNode로 표시되어있는 경우에만이를 throw해야한다고 나와 있습니다. 무엇이 원격 데스크톱을 내가 InvalidOperationException을 얻는 것과 다른 것으로 만드는가?
다음은 현재 이벤트를 수행해야하는 코드입니다.
ExpandCollapseState state =
patternMenu.Current.ExpandCollapseState;
if (state == ExpandCollapseState.Expanded)
patternMenu.Collapse();
else if (state == ExpandCollapseState.PartiallyExpanded ||
state == ExpandCollapseState.Collapsed)
patternMenu.Expand();
patternMenu는 GetCurrentPattern을 사용하여 AutomationElement에서 가져온 ExpandCollapsePattern입니다.
ExpandCollapseState의 현재 값은 값을 인쇄 할 때 "축소됨"입니다.
EDIT : 내가 왜 downvote를 얻었는지, 그리고 이것이 나쁜 질문이라는 것을 알 수있는 기회. 필자는 원격 데스크톱이 닫힐 때만 실패하는 것처럼 보이는 상황을 진정으로 혼란스럽게 생각합니다. 이것이 내가 그 해답을 알아야한다는 정말로 바보 같은 질문이라면, 나는 설명과 downvote를 좋아할 것입니다.
데스크톱과 상호 작용하는 프로세스는 Windows 서비스가 아닙니다. 원격 데스크톱을 컴퓨터에 설치 한 후 시작하는 응용 프로그램입니다. 내가 데스크톱을 잠그고 있기 때문입니까?
우분투에서 "터미널 서버 클라이언트"를 사용하여 Windows 컴퓨터에 로그인하고 있습니다. 이 애플리케이션의 닫기 버튼을 누르면 데스크톱이 잠길 수 있습니까?
데스크톱이 잠겨있을 때 ,하지만 나는 틀렸다.최신 테스트 결과는 데스크톱이 잠겨 자마자 실패하기 시작했습니다. 원격 데스크톱을 사용하는 대신 테스트를 실행하는 VM을 설정하기 시작합니다. 감사. –