【发布时间】:2010-11-24 14:06:18
【问题描述】:
我正在编写程序来自动化 win32 表单。我正在使用 Microsoft UI 自动化库。我不知道如何获取和调用该表单上的预定义快捷键。现在我只需获取 MenuItem 的 AutomationElement 并调用单击该元素。 有什么解决办法吗?有人这样做吗?
【问题讨论】:
标签: .net winforms winapi ui-automation
我正在编写程序来自动化 win32 表单。我正在使用 Microsoft UI 自动化库。我不知道如何获取和调用该表单上的预定义快捷键。现在我只需获取 MenuItem 的 AutomationElement 并调用单击该元素。 有什么解决办法吗?有人这样做吗?
【问题讨论】:
标签: .net winforms winapi ui-automation
据我所知,AutomationElementInformation 具有 AcceleratorKey 和 AccessKey 属性。
部分摘自 MSDN:
AutomationElement::AutomationElementInformation::AcceleratorKey
调用与元素关联的操作的键组合序列。
和:
AutomationElement::AutomationElementInformation::AccessKey
与元素相关联的字符,用于激活该元素。
之后你可以使用SendKeys 来模拟按键。
另一种方法是使用 keybd___event,但是,AFAIK,它已被弃用,Microsoft 建议改用 SendInput。可能会对你有所帮助。
【讨论】:
您应该激活主窗口,并调用 SendKeys::Send 将密钥发送到活动窗口。 它是 SendKeys 类中的静态方法,因此,将键发送到窗口不需要主窗口的 AutomationElement。
【讨论】: