2012-02-23 7 views
1

Windows 커서를 대체 할 WPF 응용 프로그램 마녀를 만들 것입니다. 내가 알 필요가있는 것은 입니다. 마녀가 내 커서를 클릭하면을 클릭 할 수 있습니다 (지금 당장 클릭하고 싶지 않습니다).요소를 클릭 할 수 있는지 가져 오기

해당 요소 (단추, 링크 등 ...)는 Windows (바탕 화면 아이콘, 다른 WPF 응용 프로그램, 웹 사이트 ...)의 어느 곳에 나있을 수 있습니다. 나는 몇 가지 검색을하고 그것이 어셈블리 UIAutomation에서 무엇을 검색하는지 찾을 수있는 것처럼 보입니다. 그러나 나는 그것을 어떻게 사용하는지 전혀 모릅니다.

내 생각은 그 커서의 위치를 ​​얻을 수 있습니다 :

해당 항목이

누군가가 아이디어가 클릭 할 수있는 경우 항목이 -watch에서 자신의 경우

-watch?

감사

+0

커서가 응용 프로그램의 컨트롤 위에 있거나 자신의 응용 프로그램 자체 위에있을 때이 작업을 수행 하시겠습니까? 앱의 사용 방법에 대해 더 자세히 설명해 주시겠습니까? – BrendanMcK

+0

커서가 응용 프로그램을 가리키면이 작업을 수행하려고합니다. 사실 하나의 WPF 응용 프로그램에서 작동해야하지만 그 응용 프로그램에 액세스 할 필요가 없습니다. 내 응용 프로그램 kinect와 함께 사용됩니다, 나는 methode 마녀가 클릭을 던져 버릴거야, 내가 필요로하는 것은 조건 마녀 때 그것을 던져 말할 수 있습니다. onMouseHover와 같은 버튼에 이벤트를 추가 할 수 없기 때문에 커서를 올려 놓을 수 있는지 확인해야합니다. – SavaryNicolas

답변

0

항목을 클릭하거나하지 될 수 있는지 알려줄 일반적인 방법은 없습니다. 그러나 당신은 당신의 어플리케이션에 대해 충분히 추측 할 수있을 것입니다.

문제는 처음부터 클릭이 작동하는 방식과 관련이 있습니다. Windows는 항상 클릭을 보내고 응답 여부 또는 응답 방식을 결정하는 것은 응용 프로그램의 책임입니다. 일반적으로 양식의 배경은 응답하지 않지만 일부는 응답합니다. 일반적으로 버튼이 반응합니다. 하지만 그렇지 않은 것이있을 수 있습니다. 일부 유형의 컨트롤은 클릭 한 위치에 따라 다르게 반응 할 수 있습니다. 텍스트 컨트롤에서 링크를 클릭하면 링크가 활성화됩니다. 텍스트를 클릭하면 삽입 포인터가 이동합니다.

그래서 가장 좋은 방법은 항상 클릭이 전송되도록 허용하는 것입니다. 마우스를 어떻게 든 작동시키는 것입니다.

그러나 힌트를 표시하려면 UIAutomation을 사용하여 AutomationElement.FromPoint를 가져 와서 해당 ControlType 및 IsEnabled 속성을 가져오고 Button, ListItem, TabItem 등과 같은 항목이 있으면 시도해 볼 수 있습니다. 가 사용 설정된 경우 일 것입니다. 클릭 할 수 있습니다.

하나 또는 두 개의 특정 앱에 대해서만 작업해야하는 경우 해당 애플리케이션에 대해 클릭 할 수있는 유형의 전체 목록을 제공 할 수도 있지만 모든 애플리케이션에서 작업하려는 경우, 당신은 항상 정확하지는 않을 것이라는 점을 알아야합니다. 따라서 올바른 표시기를 표시하지 않더라도 사용자가 클릭을 무시하고 보낼 수 있어야합니다.

관련 문제