2012-02-23 73 views
1

我正在构建一个WPF应用程序巫婆将替换窗口光标。我需要知道的是如果一个物品女巫在我的光标下可以点击(我不想现在点击它)。获取一个元素是否可以被点击

该元素(一个按钮,一个链接等)可以在windows(桌面图标,其他WPF应用程序,网站...)上的任何地方。我做了一些搜索,似乎我可以找到我在装配UIAutomation搜索...但我不知道如何使用它。

我的想法是让光标,然后的位置:

-watch,如果他们正在 -watch的项目,如果该项目可以点击

有人有一个想法?

谢谢

+0

当您的光标在任何应用程序中的任何控件上,或仅在您自己的应用程序本身上时,您是否希望这样做?你能更详细地描述你的应用程序将如何使用? – BrendanMcK 2012-02-24 04:45:00

+0

我想在光标悬停任何应用程序时执行此操作。事实上,我需要它在一个WPF应用程序中工作,但我无法访问该应用程序。我的应用程序将与一个kinect一起使用,我已经有了方法巫婆会抛出咔嗒声,我需要的是一个条件女巫说什么时候扔它。因为我不能将任何事件添加到按钮(如onMouseHover),我需要添加到光标的能力,看看他是否悬停的东西,可以点击。 – SavaryNicolas 2012-02-24 08:48:16

回答

0

有没有办法一般来判断一个项目是否可以被点击或没有。但是你可能能够为你的应用程序做出足够好的猜测。

问题与点击的工作方式有关:Windows始终发送点击,并由应用程序决定是否或如何响应。通常情况下,表单的背景不会回应 - 但有些可以。通常按钮会响应;但可能有些不这样做。而某些类型的控件可能会根据您点击的位置做出不同的响应:如果您单击文本控件中的链接,它将激活链接;单击文本,它将移动插入点。

所以最好的办法是始终允许点击发送 - 这就是鼠标工作的方式。

但是,如果你想显示一个提示,你可以尝试使用UIAutomation来获得AutomationElement.FromPoint,获取它的ControlType和IsEnabled属性,以及它是否像Button,ListItem,TabItem等等,并且它已启用,那么它的可能是可点击。

如果您只需要针对一个或两个特定的应用程序工作,则可以为这些应用程序提供可点击或不可用类型的完整列表,但是如果您想使用任何应用程序,你需要知道你并不总是准确的,所以即使你没有显示正确的指标,也应该允许用户覆盖并发送点击。