Microsoft UI Automation /获取用户单击的项

时间:2015-05-07 14:19:23

标签: c# user-interface automation hook

我想弄清楚用户点击的项目(例如文档,网页标签,窗口,图片,文件夹)。当我检测到全局鼠标左键单击时,我开始使用以下代码:

System.Drawing.Point MousePoint = System.Windows.Forms.Cursor.Position;
AutomationElement AutomationElement = AutomationElement.FromPoint(new System.Windows.Point(MousePoint.X, MousePoint.Y));
Console.WriteLine(AutomationElement.Current.Name);

在大多数情况下,这似乎都很有效。但是,我需要(如果可能的话)在Windows资源管理器中获取文档/图像/文件夹的名称。单击Windows资源管理器(而不是树视图)右侧窗格中的文档时返回的值是"名称"。反正有没有得到实际的文件名?出于某种原因,单击树视图中的子文件夹将返回文件夹的名称,这就是我想要的。

我还注意到,如果Windows资源管理器视图设置为图标(中等,大或超大),则代码似乎在单击时显示文档/图像/文件夹名称。有没有理由为什么其他观点会回归"姓名"或空字符串,而中,大和超大图标返回实际的文档/图像/文件夹名称?是否与单击对象的大小有关?如果可能的话,我真的能绕道而行?

我很抱歉,我是UI Automation的新手,只是想找到用户点击的对象名称(文件,文件夹,文档,图片,网页标签等)。任何人都可以提供任何帮助都会很棒。

0 个答案:

没有答案