def ClickOnMenuItemByText(text, button="LEFT"): hwnd = win32gui.FindWindow("#32768", None) MN_GETHMENU = 0x01E1 hmenu = win32gui.SendMessage(hwnd, MN_GETHMENU, 0, 0) icount = win32gui.GetMenuItemCount(hmenu) for i in xrange(icount): t = GetMenuItemString(i).decode("gbk").encode("UTF-8") # print text, t if text == t: rect = win32gui.GetMenuItemRect(hwnd, hmenu, i)[1] #print rect x = (rect[2] - rect[0]) / 2 + rect[0] y = (rect[3] - rect[1]) / 2 + rect[1] #print x #print y sleep(3) #MouseClick(x, y, button) get_mouse_point() sleep(3) mouse_move(x, y) sleep(3) mouse_click(x, y) return True return False
def MouseHoverMenuItem(idx): hwnd = win32gui.FindWindow("#32768", None) MN_GETHMENU = 0x01E1 hmenu = win32gui.SendMessage(hwnd, MN_GETHMENU, 0, 0) icount = win32gui.GetMenuItemCount(hmenu) if idx < 0: idx += icount rect = win32gui.GetMenuItemRect(hwnd, hmenu, idx)[1] x = (rect[2] - rect[0]) / 2 + rect[0] y = (rect[3] - rect[1]) / 2 + rect[1] DesktopCommon.MouseTo(x, y)
def ClickOnMenuItem(idx, button="LEFT"): hwnd = win32gui.FindWindow("#32768", None) MN_GETHMENU = 0x01E1 hmenu = win32gui.SendMessage(hwnd, MN_GETHMENU, 0, 0) icount = win32gui.GetMenuItemCount(hmenu) if idx < 0: idx += icount rect = win32gui.GetMenuItemRect(hwnd, hmenu, idx)[1] x = (rect[2] - rect[0]) / 2 + rect[0] y = (rect[3] - rect[1]) / 2 + rect[1] MouseClick(x, y, button)
def item_count(self): """Return the count of items in this menu""" return win32gui.GetMenuItemCount(self.handle)
def GetMenuItemCount(): hwnd = win32gui.FindWindow("#32768", None) MN_GETHMENU = 0x01E1 hmenu = win32gui.SendMessage(hwnd, MN_GETHMENU, 0, 0) icount = win32gui.GetMenuItemCount(hmenu) return icount
#print("9. CursorIntext : ", win32gui.GetWindowText(cursorinfo )) print("10.foregro text : ", win32gui.GetWindowText(foreground )) print("11.hdc text : ", win32gui.GetWindowText(hdc )) print("12.obj text : ", win32gui.GetWindowText(obj )) print("13.stockobjtext : ", win32gui.GetWindowText(stockobj)) print("14.sysmenu text : ", win32gui.GetWindowText(sysmenu)) print("15.menu : ", win32gui.GetMenuItemRect(hwnd, menu, 2)) buf, extras = win32gui_struct.EmptyMENUITEMINFO() #print(type(buf)) #print("buf 0 : ", buf[0]) print("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n") try: #print(type( menu )) for i in range( win32gui.GetMenuItemCount(menu) ): win32gui.GetMenuItemInfo( menu, i, True, buf) #win32gui.GetMenuInfo( menu, # buf ) #print( "menu :" , buf[0] ) _, rect = win32gui.GetMenuItemRect(hwnd, menu, i) #print( rect ) if win32gui.PtInRect( rect, pt ): print(win32gui_struct.UnpackMENUITEMINFO(buf)) except pywintypes.error : pass win32gui.DrawMenuBar(hwnd)