2009-09-01 2 views
4

나는 Win32 양식을 자동화하는 프로그램을 작성하고있다. Microsoft UI 자동화 라이브러리를 사용하고 있습니다. 나는 그 양식에 미리 결정된 단축키를 어떻게 가져오고 호출 할 수 있는지 모른다. 이제 MenuItem의 AutomationElement를 가져 와서 해당 요소를 클릭하십시오. 모든 솔루션? 아무도하지 않니?UI 자동화에서 바로 가기 키를 호출하는 방법? /. NET

답변

3

은 내가 아는 한 AutomationElementInformation는 AcceleratorKey입니다 accesskey 속성이 있습니다. MSDN에서
일부 추출 :

AutomationElement를 :: AutomationElementInformation :: AcceleratorKey
요소와 연관된 동작을 호출 키 조합의 시퀀스.

하고 :

AutomationElement를 :: AutomationElementInformation :: ACCESSKEY는
요소와 연관된 문자, 즉 그 요소를 활성화하기 위해 사용된다.

그리고 SendKeys을 사용하여 키 누름을 시뮬레이션 할 수 있습니다.

또 다른 방법은 keybd___event를 사용하는 것이지만 AFAIK는 더 이상 사용되지 않으며 대신 Microsoft는 SendInput을 사용하도록 권장합니다. 그것은 당신을 도울 것입니다.

+0

AcceleratorKey 및 AccessKey에 대해 감사드립니다. 도움이되었다. 그러나 Win32 Form을 사용할 때 UI 자동화 라이브러리를 사용하는 또 다른 방법이기 때문에 SendKeys를 사용할 수 없습니다. AutomationElemnt를 가지고 있으며 컨트롤 유형 속성과 상호 작용하도록 패턴을 가져올 수 있습니다. 필자의 경우 MainWindow AutomationElement가 있으며 두 개의 패턴, 즉 WindowPattern과 TransformPattern이 있습니다. 이 패턴을 사용하면 SendKeys를 에뮬레이션 할 수 없습니다. 그래서, 나는 키 단축키를 어떻게 사용할 수 있는지 이해하지 못한다. – Loki

+0

* SendInput *을 사용할 수 있습니까? –

2

주 창을 활성화하고 SendKeys :: Send를 호출하여 키를 활성 창으로 보내야합니다. 그것은 SendKeys 클래스의 정적 메서드이므로 창에 키를 보내려면 주 윈도우의 AutomationElement가 필요하지 않습니다.

관련 문제