2014-07-09 3 views
2

UI 자동화를 사용하여 모든 응용 프로그램의 마우스 및 키보드 이벤트를 캡처 할 수 있습니까? 내가 초점 변경과 같은 UI 자동화 이벤트를 처리하는 UI 자동화 클라이언트 응용 프로그램을 만들려고하고UI 자동화 마우스 및 키보드 이벤트 처리

이 메뉴는 이벤트가 어떤 대상에 발생하면 메뉴 등 (UIA_ToolTipOpenedEventId, UIA_ToolTipClosedEventId, UIA_MenuOpenedEventId 등)

폐쇄, 개방 응용 프로그램에서 내 테스트 응용 프로그램은 이러한 이벤트를 수신 할 수 있습니다. 그러나 마우스 나 키보드 이벤트를 캡처 할 수 없습니다.

도움이 될 것입니다.

참조 링크 : https://www.universalthread.com/ViewPageArticle.aspx?ID=199 (나는 방법을 참조하고이 문서에 설명했다.) 사전에

감사합니다!

답변

0

아마도 글로벌 Windows 후크가 유용 할 것입니다. 네이티브 C++의 경우 the MSDN reference을 참조하십시오. 네이티브 GUI에 성공적으로 사용 된 pyHook (64 비트 패키지는 here이라고 볼 수 있습니다) 파이썬 바인딩도 있습니다. .NET 코드의 경우 아마도 WinEvents 참조가 더 유용 할 것입니다.

이벤트가 캡처되면 핸들 또는 마우스 좌표를 가져올 수 있으며 UI Automation API에서 ElementFromPoint 또는 ElementFromHandle 함수를 사용할 수 있습니다.

+0

감사합니다.하지만 제한 사항으로 인해서 어떤 고리도 사용할 수 없습니다. 목적은 분명히 해결되었습니다. 그러나이를 위해 UIAutomation API와 UIAutomation 인터페이스를 사용해야합니다. – newbie

0

이전 질문이지만 답변을 추가 할 것을 촉구 할 수는 없습니다.

아니요, UI 자동화를 통해 마우스 또는 키보드 이벤트를 캡처 할 수 없습니다. 당신은 이미 UI 이벤트를 얻고 있으며, 이벤트가 발생했을 때 마우스 위치를 확인하는 것이 가장 좋다고 생각합니다.하지만 시나리오에 맞지 않을 수도 있습니다. 요약, UI 자동화는 여기서 당신을 도울 수 없습니다.

+0

정답입니다. – Alas