Python win32api 模块,SendMessage() 实例源码

我们从Python开源项目中,提取了以下12个代码示例,用于说明如何使用win32api.SendMessage()

项目:pytomatic    作者:N0K0    | 项目源码 | 文件源码
def release_button(self, coords, button = "left"):

        if "right" in button.lower():
            _button_up = win32con.WM_RBUTTONUP
        elif "left" in button.lower():
            _button_up = win32con.WM_LBUTTONUP
        elif "middle" in button.lower():
            _button_up = win32con.WM_MBUTTONUP
        else:
            raise SyntaxError('"Button" needs to contain "left", "right" or "middle"')

        if all(isinstance(elem, float) for elem in coords):
            coords = self.to_pixel(coords)
        x = coords[0]
        y = coords[1]

        l_param = win32api.MAKELONG(x, y)


        hwnd = self.win_handler.get_hwnd()
        win32api.SendMessage(hwnd, _button_up, 0, l_param)


        raise NotImplementedError
项目:code    作者:ActiveState    | 项目源码 | 文件源码
def OnChangeCBChain (self, msg, wParam, lParam):
        if self.nextWnd == wParam:
           # repair the chain
           self.nextWnd = lParam
        if self.nextWnd:
           # pass the message to the next window in chain
           win32api.SendMessage (self.nextWnd, msg, wParam, lParam)
项目:code    作者:ActiveState    | 项目源码 | 文件源码
def OnDrawClipboard (self, msg, wParam, lParam):
        if self.first:
           self.first = False
        else:
           print "clipboard content changed"
        if self.nextWnd:
           # pass the message to the next window in chain
           win32api.SendMessage (self.nextWnd, msg, wParam, lParam)
项目:pyaimp    作者:EpocDotFr    | 项目源码 | 文件源码
def _get_prop(self, prop_id):
        """Retrieve an AIMP property."""
        return win32api.SendMessage(self._aimp_window, WM_AIMP_PROPERTY, prop_id | AIMP_RA_PROPVALUE_GET, 0)
项目:pyaimp    作者:EpocDotFr    | 项目源码 | 文件源码
def _set_prop(self, prop_id, value):
        """Set an AIMP property."""
        win32api.SendMessage(self._aimp_window, WM_AIMP_PROPERTY, prop_id | AIMP_RA_PROPVALUE_SET, value)
项目:pyaimp    作者:EpocDotFr    | 项目源码 | 文件源码
def _send_command(self, command_id, parameter=None):
        """Send an AIMP command."""
        return win32api.SendMessage(self._aimp_window, WM_AIMP_COMMAND, command_id, parameter)
项目:autoops_for_win    作者:qiueer    | 项目源码 | 文件源码
def  SetText(cls, whd, text):
        win32api.SendMessage(whd,win32con.WM_SETTEXT,None, text)
项目:Automation-Framework-for-devices    作者:tok-gogogo    | 项目源码 | 文件源码
def MainCloseIEWindow(self,strControlName):
        print ">>>MainCloseIEWindow"     
        clss = "IEFrame"

        try:
            hwnd = win32gui.FindWindow(clss,strControlName)
            time.sleep(1)     
            win32api.SendMessage(hwnd,win32con.WM_CLOSE,0,0)  
            return True
        except:
            log_public(WEB_ERR_NO_0018)
            self.m_ERROR_MSG = WEB_ERR_NO_0018                 
            return False
项目:Automation-Framework-for-devices    作者:tok-gogogo    | 项目源码 | 文件源码
def clickControl(self, hwnd, args):
        """ Used for simple dialogs that just have buttons such as 'ok', 'cancel'
            or 'clear'.
            parameters:
                hwnd:       - The handle to the dialog.
                args[0]     - The button control name.
            returns:
                Nothing
        """
        controlText = args[0];
        if self.showDebugging:
            x = self.wga.dumpWindow(hwnd) # dump out all the controls
            pprint.pprint(x) # print out all the controls
        button = self.wga.findControl(hwnd,
                    wantedClass="Button",
                    wantedText=controlText)
        self.wga.clickButton(button)

        #find more one time. if find another save name dialog,click it. chen sheng cong/2013/03/14
        time.sleep(1)   
        hwnd = self.wn.FindWindow("#32770", self.popupName)

        if hwnd != 0:
            button = self.wga.findControl(hwnd,
                    wantedClass="Button",
                    wantedText=controlText)
            self.wga.clickButton(button) #for popup two dialogs.       

        hwnd = win32gui.FindWindow(IECLASS,IETITLE)
        print "test1",hwnd
        if hwnd != 0:
            print "test2"
            time.sleep(1)     
            win32api.SendMessage(hwnd,win32con.WM_CLOSE,0,0)
项目:Automation-Framework-for-devices    作者:tok-gogogo    | 项目源码 | 文件源码
def MainCloseIEWindow(self,strControlName):
        print ">>>MainCloseIEWindow"     
        clss = "IEFrame"

        try:
            hwnd = win32gui.FindWindow(clss,strControlName)
            time.sleep(1)     
            win32api.SendMessage(hwnd,win32con.WM_CLOSE,0,0)  
            return True
        except:
            log_public(WEB_ERR_NO_0018)
            self.m_ERROR_MSG = WEB_ERR_NO_0018                 
            return False
项目:pytomatic    作者:N0K0    | 项目源码 | 文件源码
def click(self, coords, button="left",hold=False):
        """
        Args:
            coords (touple): coords takes two arguments, either both float
                or int. If float is supplied, it will try to treat them as
                percentages. X, Y
            button (string): either "left","right" or "middle". Decides what button that
                will be sent to the running program.

        Returns:
            bool: True if successful, False otherwise.

        Raises:
            SyntaxError: The button param does not contain "left","right og "middle"
        """

        hwnd = self.win_handler.get_hwnd()

        if all(isinstance(elem, float) for elem in coords):
            coords = self.to_pixel(coords)


        logging.debug("Trying to click on:" + str(coords) + " with " + button + " button")

        x = coords[0]
        y = coords[1]

        if "right" in button.lower():
            _button_state = win32con.MK_RBUTTON
            _button_down = win32con.WM_RBUTTONDOWN
            _button_up = win32con.WM_RBUTTONUP
        elif "left" in button.lower():
            _button_state = win32con.MK_LBUTTON
            _button_down = win32con.WM_LBUTTONDOWN
            _button_up = win32con.WM_LBUTTONUP
        elif "middle" in button.lower():
            _button_state = win32con.MK_MBUTTON
            _button_down = win32con.WM_MBUTTONDOWN
            _button_up = win32con.WM_MBUTTONUP
        else:
            raise SyntaxError('"Button" needs to contain "left", "right" or "middle"')

        l_param = win32api.MAKELONG(x, y)

        win32api.SendMessage(hwnd, win32con.WM_MOUSEMOVE,0,l_param)

        time.sleep(0.2)
        win32api.SendMessage(hwnd,_button_down, _button_state, l_param)
        time.sleep(0.1)

        if not hold: #Do not release the button if hold is true
            win32api.SendMessage(hwnd, _button_up, 0, l_param)

        self._last_x = x
        self._last_y = y
        return True
项目:pytomatic    作者:N0K0    | 项目源码 | 文件源码
def hold_and_drag(self,start,end,steps,button="left"):
        hwnd = self.win_handler.get_hwnd()

        if all(isinstance(elem, float) for elem in start):
            start = self.to_pixel(start)

        if all(isinstance(elem, float) for elem in end):
            end = self.to_pixel(end)

        step_x = (float(end[0] - start[0])) / steps
        step_y = (float(end[1] - start[1])) / steps

        if "right" in button.lower():
            _button_state = win32con.MK_RBUTTON
            _button_down = win32con.WM_RBUTTONDOWN
            _button_up = win32con.WM_RBUTTONUP
        elif "left" in button.lower():
            _button_state = win32con.MK_LBUTTON
            _button_down = win32con.WM_LBUTTONDOWN
            _button_up = win32con.WM_LBUTTONUP
        elif "middle" in button.lower():
            _button_state = win32con.MK_MBUTTON
            _button_down = win32con.WM_MBUTTONDOWN
            _button_up = win32con.WM_MBUTTONUP
        else:
            raise SyntaxError('"Button" needs to contain "left", "right" or "middle"')

        self.move(start)
        l_param = win32api.MAKELONG(start[0], start[1])

        time.sleep(0.1)
        win32api.SendMessage(hwnd,_button_down,_button_state,l_param)
        time.sleep(0.1)

        x, y = start
        for step in range(0,steps):
            x += step_x
            y += step_y
            self.move((int(x),int(y)), button=button)
            time.sleep(0.01)

        l_param = win32api.MAKELONG(int(x), int(y))
        win32api.SendMessage(hwnd,_button_up,0,l_param)
        self._last_x = x
        self._last_y = y