获取上下文菜单的窗口句柄?

问题描述:

我正在使用MSAA进行一些自动化。获取上下文菜单的窗口句柄?

与其他所有MSAA元素不同,我无法遍历桌面窗口的子项(尽管我可以通过accChildCount获得窗口的数量)。

所以我正在寻找另一种方式来获取上下文菜单MSAA对象。我最近的想法是,如果我可以获取上下文菜单的HWND,那么我可以使用AccessibleObjectFromWindow来获取MSAA对象。难点在于,你如何得到上下文菜单的HWND?

目前我唯一的解决方法是使用UIAutomation检索HWND,但我觉得这可能是相当浪费......是否有任何其他Windows32函数可以返回上下文菜单的句柄?

+0

您甚至知道上下文菜单已打开? – conio

+0

@conio因为我调用了它。如果有一种方法可以获取上下文菜单的HWND,那么当然也可以使用它来查明它是否打开。 – Sancarn

MSDN说你可以用FindWindowEx(NULL, NULL, MAKEINTATOM(0x8000), NULL);找到菜单窗口。

+0

有趣!我会试试这个!谢谢! – Sancarn