def clean(self):
     win32gui.SendMessage(self.hwnd_s, win32con.WM_ACTIVATE,
                          win32con.WA_ACTIVE, 0)
     win32gui.SendMessage(self.hwnd_t, win32con.WM_LBUTTONDOWN,
                          win32con.MK_LBUTTON, win32api.MAKELONG(13, 330))
     time.sleep(self.speed)
     win32gui.SendMessage(self.hwnd_t, win32con.WM_LBUTTONUP, 0000,
                          win32api.MAKELONG(13, 330))
     time.sleep(self.speed)
示例#2
0
 def stop(self):
     print('stop simulator hwnd:%s'%self.hwnd)
     stopBtn = win32gui.FindWindowEx(self.hwnd, 0, "Button", u"停止")
     win32gui.SendMessage(self.hwnd, win32con.WM_COMMAND,
                              win32api.MAKELONG(1003, win32con.BN_CLICKED), stopBtn)
     time.sleep(5)
     quitBtn = win32gui.FindWindowEx(self.hwnd, 0, "Button", u"退出")
     win32gui.SendMessage(self.hwnd, win32con.WM_COMMAND,
                          win32api.MAKELONG(1001, win32con.BN_CLICKED), quitBtn)
示例#3
0
 def MouseDrag(self, posx, posy):
     clientx = win32gui.ScreenToClient(self._handle, posx)
     lparamx = win32api.MAKELONG(clientx[0], clientx[1])
     clienty = win32gui.ScreenToClient(self._handle, posy)
     lparamy = win32api.MAKELONG(clienty[0], clienty[1])
     win32api.SendMessage(self._handle, win32con.WM_LBUTTONDOWN,
                          win32con.MK_LBUTTON, lparamx)
     win32api.SendMessage(self._handle, win32con.WM_MOUSEMOVE, 0, lparamy)
     win32api.SendMessage(self._handle, win32con.WM_LBUTTONUP,
                          win32con.MK_LBUTTON, lparamy)
示例#4
0
 def DragTo(self, From, To):
     ClientFrom = win32gui.ScreenToClient(self.hwnd, From)
     FromPosition = win32api.MAKELONG(ClientFrom[0], ClientFrom[1])
     ClientTo = win32gui.ScreenToClient(self.hwnd, To)
     ToPosition = win32api.MAKELONG(ClientTo[0], ClientTo[1])
     win32api.SendMessage(self.hwnd, win32con.WM_LBUTTONDOWN,
                          win32con.MK_LBUTTON, FromPosition)
     win32api.SendMessage(self.hwnd, win32con.WM_MOUSEMOVE, 0, ToPosition)
     win32api.SendMessage(self.hwnd, win32con.WM_LBUTTONUP,
                          win32con.MK_LBUTTON, ToPosition)
示例#5
0
def click(handle, xy, noisy_offset=8):
    x, y = int(xy[0]), int(xy[1])
    if isinstance(noisy_offset, int):
        x += random.randint(-noisy_offset, noisy_offset)
        y += random.randint(-noisy_offset, noisy_offset)
    win32gui.SendMessage(handle, win32con.WM_LBUTTONDOWN, win32con.MK_LBUTTON,
                         win32api.MAKELONG(x, y))
    time.sleep(0.1)
    win32gui.SendMessage(handle, win32con.WM_LBUTTONUP, 0,
                         win32api.MAKELONG(x, y))
示例#6
0
def mouse_left_click(x, y):
    hwnd = win32gui.FindWindow('WeChatMainWndForPC', '微信')
    print(hwnd)
    y += 36
    time.sleep(0.05)
    win32api.SendMessage(hwnd, win32con.WM_LBUTTONDOWN, win32con.MK_LBUTTON, win32api.MAKELONG(x, y))
    time.sleep(0.05)
    win32api.SendMessage(hwnd, win32con.WM_LBUTTONUP, win32con.MK_LBUTTON, win32api.MAKELONG(x, y))
    time.sleep(0.05)
    raise Exception('line xxx')
    def post_left_click(self, x=0, y=0, hwnd=None):
        """ Uses PostMessage to send a click to a coordinate"""
        HWND = hwnd
        if HWND is None:
            HWND = self.hwnd[0]

        win32gui.PostMessage(HWND, win32con.WM_LBUTTONDOWN,
                             win32con.MK_LBUTTON, win32api.MAKELONG(x, y))
        win32gui.PostMessage(HWND, win32con.WM_LBUTTONUP, 0,
                             win32api.MAKELONG(x, y))
示例#8
0
 def mouse_left_click(self, x, y):
     hwnd = self.hwnd
     print(hwnd)
     y += 36
     time.sleep(0.05)
     win32api.PostMessage(hwnd, win32con.WM_LBUTTONDOWN,
                          win32con.MK_LBUTTON, win32api.MAKELONG(x, y))
     time.sleep(0.05)
     win32api.PostMessage(hwnd, win32con.WM_LBUTTONUP, win32con.MK_LBUTTON,
                          win32api.MAKELONG(x, y))
     time.sleep(0.05)
示例#9
0
def click_random(pos, timestamp=0.5, action="left", offset=5):
    hWnd = win32gui.FindWindow(None, windowName)
    if offset > 0:
        lParam = win32api.MAKELONG(pos[0] + hMargin + r(-offset, offset),
                                   pos[1] + vMargin + r(-offset, offset))
    else:
        lParam = win32api.MAKELONG(pos[0] + hMargin, pos[1] + vMargin)

    win32gui.PostMessage(hWnd, win32con.WM_LBUTTONDOWN, win32con.MK_LBUTTON,
                         lParam)
    win32gui.PostMessage(hWnd, win32con.WM_LBUTTONUP, 0, lParam)
    time.sleep(timestamp)
示例#10
0
def moveMouseDown(hwnd, pos1, dist):
    time.sleep(1.25)
    tmp1 = win32api.MAKELONG(pos1[0], pos1[1])
    win32gui.SendMessage(hwnd, win32con.WM_LBUTTONDOWN, win32con.MK_LBUTTON,
                         tmp1)
    for i in range(int(dist / 5)):
        pos1 = pos1[0], pos1[1] + 5
        tmp1 = win32api.MAKELONG(pos1[0], pos1[1])
        win32gui.SendMessage(hwnd, win32con.WM_MOUSEMOVE, win32con.MK_LBUTTON,
                             tmp1)
        time.sleep(0.01)
    win32gui.SendMessage(hwnd, win32con.WM_LBUTTONUP, 0, tmp1)
示例#11
0
文件: teste.py 项目: ziir/PyTibiaBot
 def UseOn(self, posx,posy):
     client_pos = win32gui.ScreenToClient(self._handle, posx)
     tmp = win32api.MAKELONG(client_pos[0], client_pos[1])
     win32api.PostMessage(self._handle, win32con.WM_MOUSEMOVE, 0, tmp)
     win32api.SendMessage(self._handle, win32con.WM_RBUTTONDOWN, win32con.MK_RBUTTON, tmp)
     win32api.SendMessage(self._handle, win32con.WM_RBUTTONUP, win32con.MK_RBUTTON, tmp)
     client_posy = win32gui.ScreenToClient(self._handle, posy)
     tmpy = win32api.MAKELONG(client_posy[0], client_posy[1])
     win32api.PostMessage(self._handle, win32con.WM_MOUSEMOVE, 0, tmpy)
     win32api.SendMessage(self._handle, win32con.WM_LBUTTONDOWN, win32con.MK_LBUTTON, tmpy)
     win32api.SendMessage(self._handle, win32con.WM_LBUTTONUP, win32con.MK_LBUTTON, tmpy)
     self.MoveToDefault()
示例#12
0
 def mouse_left_click_move(self, x_position, y_position, x_end_position, y_end_position, sleep_time=1):
     # 将两个16位的值连接成一个32位的地址坐标
     start_position = win32api.MAKELONG(x_position, y_position)
     end_position = win32api.MAKELONG(x_end_position, y_end_position)
     self.set_mouse_position(x_position, y_position)
     time.sleep(sleep_time)
     # 点击左键
     win32api.SendMessage(self.handle, win32con.WM_LBUTTONDOWN, win32con.MK_LBUTTON, start_position)
     self.set_mouse_position(x_end_position, y_end_position)
     time.sleep(sleep_time)
     win32api.mouse_event(win32con.MOUSEEVENTF_WHEEL, x_position, y_position, 1)
     win32api.mouse_event(win32con.MOUSEEVENTF_MOVE, 0, 0, -1)
     time.sleep(sleep_time)
     win32api.SendMessage(self.handle, win32con.WM_LBUTTONUP, win32con.MK_LBUTTON, end_position)
     time.sleep(sleep_time)
示例#13
0
def walk_it(handle, str):
    position_in_window = [480, 10]
    if str == "left":
        tmp2 = win32api.MAKELONG(position_in_window[0] - 50, position_in_window[1])
        print(str)
    elif str == "right":
        tmp2 = win32api.MAKELONG(position_in_window[0] + 50, position_in_window[1] + 90)
        print(str)
    win32gui.SendMessage(handle, win32con.WM_ACTIVATE, win32con.WA_ACTIVE, 0)
    time.sleep(random.randrange(1))
    win32gui.SendMessage(handle, win32con.WM_MOUSEMOVE, 0, tmp2)
    time.sleep(random.randrange(1))
    win32gui.SendMessage(handle, win32con.WM_LBUTTONDOWN, win32con.MK_LBUTTON, tmp2)
    time.sleep(random.randrange(1))
    win32gui.SendMessage(handle, win32con.WM_LBUTTONUP, win32con.MK_LBUTTON, tmp2)
示例#14
0
def click_it(pos):          #第三种
    handle= win32gui.WindowFromPoint(pos)
    client_pos =win32gui.ScreenToClient(handle,pos)
    tmp=win32api.MAKELONG(client_pos[0],client_pos[1])
    win32gui.SendMessage(handle, win32con.WM_ACTIVATE,win32con.WA_ACTIVE,0)
    win32gui.SendMessage(handle, win32con.WM_LBUTTONDOWN,win32con.MK_LBUTTON,tmp)
    win32gui.SendMessage(handle, win32con.WM_LBUTTONUP,win32con.MK_LBUTTON,tmp)
示例#15
0
 def mouse_click(self, x: int, y: int) -> None:
     # (x, y) to one windows parameter
     long_window_coordinates = win32api.MAKELONG(x, y)
     win32api.PostMessage(self.window_handle, win32con.WM_LBUTTONDOWN,
                          win32con.MK_LBUTTON, long_window_coordinates)
     win32api.PostMessage(self.window_handle, win32con.WM_LBUTTONUP, 0,
                          long_window_coordinates)
示例#16
0
def Click(x, y):											# 向窗口发送点击指令,x、y是相对于窗口的位置

	lParam = win32api.MAKELONG(x, y)
# win32gui.ShowWindow(hwnd, win32con.SW_SHOWNORMAL)						# 将窗口调到前台
	win32gui.SendMessage(hwnd, win32con.WM_ACTIVATE,win32con.WA_ACTIVE,0)
	win32gui.SendMessage(hwnd, win32con.WM_LBUTTONDOWN, win32con.MK_LBUTTON, lParam)
	win32gui.SendMessage(hwnd, win32con.WM_LBUTTONUP, win32con.MK_LBUTTON,  lParam)
示例#17
0
def click_position(hwd, x_position, y_position, sleep):
    long_position = win32api.MAKELONG(x_position, y_position)
    win32api.SendMessage(hwd, win32con.WM_LBUTTONDOWN, win32con.MK_LBUTTON,
                         long_position)
    win32api.SendMessage(hwd, win32con.WM_LBUTTONUP, win32con.MK_LBUTTON,
                         long_position)
    time.sleep(int(sleep))
示例#18
0
def mouse_click(w, x, y):
    lParam = win32api.MAKELONG(x, y)

    win32api.PostMessage(w, win32con.WM_LBUTTONDOWN, win32con.MK_LBUTTON,
                         lParam)
    time.sleep(0.2)
    win32api.PostMessage(w, win32con.WM_LBUTTONUP, 0, lParam)
示例#19
0
    def screenshot(self):
        # Save the screenshot
        self.saveDC.BitBlt((0, 0), (self.width, self.height), self.mfcDC,
                           (0, 0), win32con.SRCCOPY)
        bmpinfo = self.saveBitMap.GetInfo()
        bmpstr = self.saveBitMap.GetBitmapBits(True)
        # Save to image
        im = Image.frombuffer('RGB', (bmpinfo['bmWidth'], bmpinfo['bmHeight']),
                              bmpstr, 'raw', 'BGRX', 0, 1)
        screen = np.array(im)

        # Generate random point and sleep_time from the screenshot
        x, y, sleep_time, battle_count = self.rand_point(screen)
        if x != None:
            l_param = win32api.MAKELONG(x, y)
            win32api.SendMessage(self.hwnd, win32con.WM_MOUSEMOVE, 0, l_param)
            #win32api.SendMessage(hwnd, win32con.WM_LBUTTONDOWN,
            #        win32con.MK_LBUTTON, l_param)
            win32api.SendMessage(self.hwnd, win32con.WM_LBUTTONDOWN, 0,
                                 l_param)
            time.sleep(0.01 + random.random() * 0.02)
            win32api.SendMessage(self.hwnd, win32con.WM_LBUTTONUP, 0, l_param)
            sys.stdout.flush()
        # Sleep for random time
        time.sleep(sleep_time)
        # tqdm update cannot take negative input in windows
        # Every two update cannot be within 10s (to detect end of battle)
        if battle_count > 0 and time.time() - self.pbar_time > 10:
            self.pbar.update(battle_count)
            self.pbar_time = time.time()
示例#20
0
    def mouse_move(self, pos):
        self._mouse_pos = pos
        self._lparam = win32api.MAKELONG(int(pos[0]), int(pos[1]))

        # Send the event to the window.
        win32api.SendMessage(self._hwnd, win32con.WM_MOUSEMOVE, self._wparam,
                             self._lparam)
示例#21
0
def clickClient(handle, pos):
    coordinate = win32api.MAKELONG(pos[0], pos[1])
    win32gui.SendMessage(handle, win32con.WM_ACTIVATE, win32con.WA_ACTIVE, 0)
    win32api.SendMessage(handle, win32con.WM_LBUTTONDOWN, win32con.MK_LBUTTON,
                         coordinate)
    win32api.SendMessage(handle, win32con.WM_LBUTTONUP, win32con.MK_LBUTTON,
                         coordinate)
示例#22
0
def click(x, y):
    point = win32api.MAKELONG(int(x), int(y))
    win32gui.SendMessage(hwnd, win32con.WM_ACTIVATE, win32con.WA_ACTIVE, 0)
    win32gui.SendMessage(hwnd, win32con.WM_LBUTTONDOWN, win32con.MK_LBUTTON,
                         point)
    win32gui.SendMessage(hwnd, win32con.WM_LBUTTONUP, win32con.MK_LBUTTON,
                         point)
示例#23
0
    def click(self, x, y, button="left"):
        """Click at pixel xy."""
        x += Window.x
        y += Window.y
        lParam = win32api.MAKELONG(x, y)
        # MOUSEMOVE event is required for game to register clicks correctly
        win32gui.PostMessage(Window.id, wcon.WM_MOUSEMOVE, 0, lParam)

        while (win32api.GetKeyState(wcon.VK_CONTROL) < 0 or
               win32api.GetKeyState(wcon.VK_SHIFT) < 0 or
               win32api.GetKeyState(wcon.VK_MENU) < 0):
            time.sleep(0.005)

        if (button == "left"):
            win32gui.PostMessage(Window.id, wcon.WM_LBUTTONDOWN,
                                 wcon.MK_LBUTTON, lParam)
            win32gui.PostMessage(Window.id, wcon.WM_LBUTTONUP,
                                 wcon.MK_LBUTTON, lParam)

        else:
            win32gui.PostMessage(Window.id, wcon.WM_RBUTTONDOWN,
                                 wcon.MK_RBUTTON, lParam)
            win32gui.PostMessage(Window.id, wcon.WM_RBUTTONUP,
                                 wcon.MK_RBUTTON, lParam)
        # Sleep lower than 0.1 might cause issues when clicking in succession
        time.sleep(0.2)
示例#24
0
    def sendMouseRightClickEx(self, x=300, y=300, count=1, shift=False, sleep=300):
        lparam = win32api.MAKELONG(x, y)

        if not shift:
            win32api.PostMessage(self.hwnd, win32con.WM_RBUTTONDOWN, win32con.VK_RBUTTON, lparam)
            win32api.PostMessage(self.hwnd, win32con.WM_RBUTTONUP, win32con.VK_RBUTTON, lparam)
            return

        win32api.PostMessage(self.hwnd, win32con.WM_KEYDOWN, win32con.VK_SHIFT, 0)

        for a in range(count):
            win32api.PostMessage(self.hwnd, win32con.WM_RBUTTONDOWN, win32con.VK_RBUTTON, lparam)
            win32api.PostMessage(self.hwnd, win32con.WM_RBUTTONUP, win32con.VK_RBUTTON, lparam)
            libs.rSleep(300)

        win32api.PostMessage(self.hwnd, win32con.WM_KEYUP, win32con.VK_SHIFT, 0)

        
        if shift:
            wparam = win32con.MK_SHIFT | win32con.MK_RBUTTON
        else:
            wparam = win32con.MK_RBUTTON

        for a in range(count):
            win32api.PostMessage(self.hwnd, win32con.WM_RBUTTONDOWN, wparam, lparam)
            win32api.PostMessage(self.hwnd, win32con.WM_RBUTTONUP, wparam, lparam)
            libs.sleep(sleep)
示例#25
0
    def click(self, x, y, button="left", fast=False, ctrl=False):
        """Click at pixel xy."""
        x += window.x
        y += window.y
        lParam = win32api.MAKELONG(x, y)
        # MOUSEMOVE event is required for game to register clicks correctly
        win32gui.PostMessage(window.id, wcon.WM_MOUSEMOVE, 0, lParam)
        while (win32api.GetKeyState(wcon.VK_CONTROL) < 0
               or win32api.GetKeyState(wcon.VK_SHIFT) < 0
               or win32api.GetKeyState(wcon.VK_MENU) < 0):
            time.sleep(0.005)

        if ctrl:
            win32gui.PostMessage(window.id, wcon.WM_KEYDOWN, wcon.VK_CONTROL,
                                 0)
        if (button == "left"):
            win32gui.PostMessage(window.id, wcon.WM_LBUTTONDOWN,
                                 wcon.MK_LBUTTON, lParam)
            win32gui.PostMessage(window.id, wcon.WM_LBUTTONUP, wcon.MK_LBUTTON,
                                 lParam)
        else:
            win32gui.PostMessage(window.id, wcon.WM_RBUTTONDOWN,
                                 wcon.MK_RBUTTON, lParam)
            win32gui.PostMessage(window.id, wcon.WM_RBUTTONUP, wcon.MK_RBUTTON,
                                 lParam)
        if ctrl:
            win32gui.PostMessage(window.id, wcon.WM_KEYUP, wcon.VK_CONTROL, 0)

        # Sleep lower than 0.1 might cause issues when clicking in succession
        if type(fast) == float:
            time.sleep(fast)
        elif fast:
            time.sleep(0.11)
        else:
            time.sleep(userset.MEDIUM_SLEEP)
示例#26
0
    def found_lParam(self, cell, x_to_add=0):
        rect = win32gui.GetWindowRect(self.hwnd)
        x = (cell["x"]) * 2 - 2
        y = cell["y"] - 2

        if x % 2 == 0:
            scallX = (self.base_size_X + 1) / cell["max_x"]
        else:
            scallX = self.base_size_X / cell["max_x"]
        scallY = self.base_size_Y / cell["max_y"]

        x += x_to_add * 2

        if y % 2 != 0:
            x = 24 + 26.7 * x
            y = 28 + 13.5 * y
        else:
            x = 51 + 24.55 * x
            y = 28 + 13.5 * y

        x = round(x * scallX)
        y = round(y * scallY)

        lParam = win32api.MAKELONG(x, y)
        return lParam
示例#27
0
 def rclick(self, percX, percY):
     if (self.handler != 0):
         param = win32api.MAKELONG(int(self.width * percX - 4),
                                   int(self.height * percY - 30))
         win32gui.PostMessage(self.handler, win32con.WM_RBUTTONDOWN, 0,
                              param)
         win32gui.PostMessage(self.handler, win32con.WM_RBUTTONUP, 0, param)
示例#28
0
    def click(self, point, clicks=1, interval=0.0, button="left", pause=0.0):
        """
        Perform a click on the given window in the background.

        Sending a message to the specified window so the click takes place
        whether the window is visible or not.
        """
        globals.failsafe()
        evt_d = self.SUPPORTED_CLICK_EVENTS[button][0]
        evt_u = self.SUPPORTED_CLICK_EVENTS[button][1]

        param = win32api.MAKELONG(point[0], point[1] + self.y_padding)

        # Loop through all clicks that should take place.
        for x in range(clicks):
            globals.failsafe()
            win32api.SendMessage(self.hwnd, evt_d, 1, param)
            win32api.SendMessage(self.hwnd, evt_u, 0, param)

            # Interval sleeping?
            if interval:
                time.sleep(interval)

        # Pausing after clicks are finished?
        if pause:
            time.sleep(pause)
示例#29
0
def click_it_a(pos, hd):
    handle = hd
    client_pos = win32gui.ScreenToClient(handle, pos)
    tmp = win32api.MAKELONG(client_pos[0], client_pos[1])
    win32gui.PostMessage(handle, win32con.WM_ACTIVATE, win32con.WA_ACTIVE, 0)
    win32gui.PostMessage(handle, win32con.WM_LBUTTONDOWN, win32con.MK_LBUTTON, tmp)
    win32gui.PostMessage(handle, win32con.WM_LBUTTONUP, win32con.MK_LBUTTON, tmp)
 def home(self):
     self.update_l_w()
     if self.w < self.h:
         x = 35
         y = 955
     else:
         x = 27
         y = 528
     win32gui.SendMessage(self.hwnd_s, win32con.WM_ACTIVATE,
                          win32con.WA_ACTIVE, 0)
     win32gui.SendMessage(self.hwnd_t, win32con.WM_LBUTTONDOWN,
                          win32con.MK_LBUTTON, win32api.MAKELONG(x, y))
     time.sleep(self.speed)
     win32gui.SendMessage(self.hwnd_t, win32con.WM_LBUTTONUP, 0000,
                          win32api.MAKELONG(x, y))
     time.sleep(self.speed)