环境:我正在使用python 2.7 wit win32api来做一些Windows自动化。我目前正在尝试自动更新防病毒并使用它来扫描计算机。我目前正在进行测试的防病毒软件是ESET Smart Security 6.
场景:一旦我打开ESET的窗口,左侧会有一个菜单(我可以得到它的句柄)但是此菜单没有项目和没有孩子(使用SPY ++)所以我假设开发人员只是为他们的按钮使用位图,这里没有实际的控件或窗口来发送消息(我注意到,当我在听的时候也是来自Spy ++消息)。
问题:我想到单击该菜单中的按钮的唯一方法是在菜单上导航鼠标并在每个位置获取工具提示,直到需要找到按钮然后单击按钮。示例:当鼠标位于更新按钮上时,出现的工具提示是“病毒库更新”。我想尝试做这样的事情:
def clickEsetMenuItem(text):
found = 0
setCursorToTopOfMenu() # by getting the rect and doing some simple math
while(!found)
navigateCursorDown() # increment the y value of the cursor using SetCursorPos
tooltip = getTooltipFromMousePos() #THIS IS WHERE I NEED HELP
if(text in tooltip):
found = 1
click() # click here
return
所以我打电话给:
clickEsetMenuItem('database update')
摘要以上只是我想对我的场景做一些解释的想法,底线是我想使用win32 api从当前鼠标位置获取工具提示,任何想法这该怎么做?我知道工具提示是“tooltips_class32”类的一部分,但如何从当前鼠标位置获取它是个问题。