2012-05-02 2 views
1

FromPoint 함수를 사용하여 특정 지점에서 AutomationElement를 찾을 수있는 C# .NET 응용 프로그램이 있습니다.UI 자동화 요소를 다른 위치로 이동하는 방법은 무엇입니까?

지금 내가 다른 위치로 이동할 수 있도록 그 AutomationElement를 조작하려면, 난을 SetWindowPos 윈도우 API 함수를 사용할 수있는 생각, 이동 및 크기 조정에 대한

등의 크기를 조절하지만 핸들을 필요로 (IntPtr)를 가져옵니다. AutomationElement의 "Current"속성을 사용하여 NativeWindowHandle (int)을 읽을 수 있습니다. Control도 창이므로,이 int 값을 창 핸들로 전달하여 SetWindowPost 함수가 내 작업을 수행하기를 바라고 있습니다.

하지만 코드가 작동하지 않습니다.

친절하게이 방법을 제안합니다.

답변

0

이동하려는 요소의 유형은 무엇입니까? 최상위 창 또는 창 안의 항목은 무엇입니까? 또한, 사용자가 마우스 나 키보드를 사용하여 이동할 수있는 유형의 항목입니까? UIAutomation은 일반 사용자가 수행 할 수있는 것과 일치하는 UI 만 조작 할 수 있도록 허용되어 있습니다. 대화 상자에서 컨트롤을 이동하는 데 사용할 수는 없습니다.

UIAutomation에서 항목을 이동하는 공식적인 방법은 요소가 Transform Pattern을 지원하는지 확인한 다음 이동 또는 크기 조정 메서드를 사용하여 적절하게 이동하는 것입니다. 이 방법은 대부분 최상위 창에서만 구현되며 다른 컨트롤에 얼마나 광범위하게 구현되는지는 확실하지 않습니다. UISpy/Inspect를 사용하여 대상 UI를 확인할 수 있습니다.

요소가 HWND 인 경우 기본 HWND 인 NativeWindowHandle 속성을 얻을 수도 있지만 먼저 IntPtr로 변환 한 다음 Win32 API에서 사용해야합니다. 이것은 실제 HWND 항목에 대해서만 작동하지만 listview의 항목에는 해당되지 않습니다.

관련 문제