Exemple #1
0
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
Exemple #2
0
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)
Exemple #3
0
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)
Exemple #4
0
 def item_count(self):
     """Return the count of items in this menu"""
     return win32gui.GetMenuItemCount(self.handle)
Exemple #5
0
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)