C++ 如何自动化窗口的上下文菜单
我正在编写一种简单的脚本语言,用于自动化我自己程序的GUI。其中一条宏指令应在聚焦窗口的上下文菜单上操作: 上下文菜单“命令名” 因此,您可以发送一个C++ 如何自动化窗口的上下文菜单,c++,winapi,C++,Winapi,我正在编写一种简单的脚本语言,用于自动化我自己程序的GUI。其中一条宏指令应在聚焦窗口的上下文菜单上操作: 上下文菜单“命令名” 因此,您可以发送一个WM_CONTEXTMENU,等待菜单打开(class#32768),使用MN_GETHMENU获取HMENU,然后在菜单项中搜索与“command name”匹配的命令,最后执行该命令 问题是,我不想只按其标识符编号执行命令。上下文菜单可能包含由IContextMenu生成的复杂项,因此我想以某种方式说服菜单关闭自身,就像用户手动选择所选命令一样
WM_CONTEXTMENU
,等待菜单打开(class#32768),使用MN_GETHMENU
获取HMENU
,然后在菜单项中搜索与“command name”匹配的命令,最后执行该命令
问题是,我不想只按其标识符编号执行命令。上下文菜单可能包含由IContextMenu
生成的复杂项,因此我想以某种方式说服菜单关闭自身,就像用户手动选择所选命令一样。这样TrackPopupMenu
将获得标识符编号并继续执行
我尝试向菜单窗口(#32768)发送一个
WM_命令
,但没有任何效果。我想向菜单发送一系列箭头键,并最终返回VK_,以便它模拟菜单命令选择,但我想知道是否有人知道一种更简单/优雅的方式来完成这个自动化任务?这个问题已经通过UI自动化解决了。从it的角度看,UI自动化并没有实现,甚至需要.NET。我对这种解决办法不感兴趣,不管它是什么。还有其他想法吗?如果你想让自己的生活变得艰难,那就去做吧!从.NET使用UI自动化要容易得多,但并不需要它。如果你想比Windows XP更老,你可以使用MSAA。谢谢雷蒙德(我每天都读你的博客)。看起来AccessibleObjectFromWindow可能是一个选项,但是我从一开始就没有想到这些途径,现在我的代码差不多完成了,所以模拟按键就可以了!