当前位置: 首页>>代码示例>>Python>>正文


Python wintypes.SHORT属性代码示例

本文整理汇总了Python中ctypes.wintypes.SHORT属性的典型用法代码示例。如果您正苦于以下问题:Python wintypes.SHORT属性的具体用法?Python wintypes.SHORT怎么用?Python wintypes.SHORT使用的例子?那么恭喜您, 这里精选的属性代码示例或许可以为您提供帮助。您也可以进一步了解该属性所在ctypes.wintypes的用法示例。


在下文中一共展示了wintypes.SHORT属性的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: _register_mouse_hook

# 需要导入模块: from ctypes import wintypes [as 别名]
# 或者: from ctypes.wintypes import SHORT [as 别名]
def _register_mouse_hook(self):
        def low_level_callback(code, wparam, lparam):
            if wparam == 512:
                self.event_handler(MouseEvent(
                    MouseEvents.MOVE,
                    x=lparam.contents.pt.x,
                    y=lparam.contents.pt.y
                ))
            elif wparam == 522:
                self.event_handler(MouseEvent(
                    MouseEvents.SCROLL,
                    direction="UP" if (wintypes.SHORT(lparam.contents.mouseData >> 16).value // 120) == 1 else "DOWN",
                    velocity=1,
                    x=lparam.contents.pt.x,
                    y=lparam.contents.pt.y
                ))
            elif wparam in [513, 514, 516, 517, 519, 520]:
                self.event_handler(MouseEvent(
                    MouseEvents.CLICK,
                    button=mouse_button_mapping[wparam],
                    direction="DOWN" if wparam in [513, 516, 519] else "UP",
                    x=lparam.contents.pt.x,
                    y=lparam.contents.pt.y
                ))

            return CallNextHookEx(None, code, wparam, lparam)

        callback = LowLevelMouseProc(low_level_callback)

        self.mouse_hook = SetWindowsHookEx(14, callback, None, None)
        atexit.register(UnhookWindowsHookEx, callback) 
开发者ID:SerpentAI,项目名称:sneakysnek,代码行数:33,代码来源:windows_recorder.py

示例2: get_console_width

# 需要导入模块: from ctypes import wintypes [as 别名]
# 或者: from ctypes.wintypes import SHORT [as 别名]
def get_console_width():
    """Return width of available window area. Autodetection works for
       Windows and POSIX platforms. Returns 80 for others

       Code from http://bitbucket.org/techtonik/python-pager
    """

    if os.name == 'nt':
        STD_INPUT_HANDLE  = -10
        STD_OUTPUT_HANDLE = -11
        STD_ERROR_HANDLE  = -12

        # get console handle
        from ctypes import windll, Structure, byref
        try:
            from ctypes.wintypes import SHORT, WORD, DWORD
        except ImportError:
            # workaround for missing types in Python 2.5
            from ctypes import (
                c_short as SHORT, c_ushort as WORD, c_ulong as DWORD)
        console_handle = windll.kernel32.GetStdHandle(STD_OUTPUT_HANDLE)

        # CONSOLE_SCREEN_BUFFER_INFO Structure
        class COORD(Structure):
            _fields_ = [("X", SHORT), ("Y", SHORT)]

        class SMALL_RECT(Structure):
            _fields_ = [("Left", SHORT), ("Top", SHORT),
                        ("Right", SHORT), ("Bottom", SHORT)]

        class CONSOLE_SCREEN_BUFFER_INFO(Structure):
            _fields_ = [("dwSize", COORD),
                        ("dwCursorPosition", COORD),
                        ("wAttributes", WORD),
                        ("srWindow", SMALL_RECT),
                        ("dwMaximumWindowSize", DWORD)]

        sbi = CONSOLE_SCREEN_BUFFER_INFO()
        ret = windll.kernel32.GetConsoleScreenBufferInfo(
            console_handle, byref(sbi))
        if ret == 0:
            return 0
        return sbi.srWindow.Right+1

    elif os.name == 'posix':
        from fcntl import ioctl
        from termios import TIOCGWINSZ
        from array import array

        winsize = array("H", [0] * 4)
        try:
            ioctl(sys.stdout.fileno(), TIOCGWINSZ, winsize)
        except IOError:
            pass
        return (winsize[1], winsize[0])[0]

    return 80 
开发者ID:meiqua,项目名称:patch_linemod,代码行数:59,代码来源:t-less_download.py

示例3: get_console_width

# 需要导入模块: from ctypes import wintypes [as 别名]
# 或者: from ctypes.wintypes import SHORT [as 别名]
def get_console_width():
    """Return width of available window area. Autodetection works for
       Windows and POSIX platforms. Returns 80 for others

       Code from http://bitbucket.org/techtonik/python-pager
    """

    if os.name == 'nt':
        STD_INPUT_HANDLE  = -10
        STD_OUTPUT_HANDLE = -11
        STD_ERROR_HANDLE  = -12

        # get console handle
        from ctypes import windll, Structure, byref
        try:
            from ctypes.wintypes import SHORT, WORD, DWORD
        except ImportError:
            # workaround for missing types in Python 2.5
            from ctypes import (
                c_short as SHORT, c_ushort as WORD, c_ulong as DWORD)
        console_handle = windll.kernel32.GetStdHandle(STD_OUTPUT_HANDLE)

        # CONSOLE_SCREEN_BUFFER_INFO Structure
        class COORD(Structure):
            _fields_ = [("X", SHORT), ("Y", SHORT)]

        class SMALL_RECT(Structure):
            _fields_ = [("Left", SHORT), ("Top", SHORT),
                        ("Right", SHORT), ("Bottom", SHORT)]

        class CONSOLE_SCREEN_BUFFER_INFO(Structure):
            _fields_ = [("dwSize", COORD),
                        ("dwCursorPosition", COORD),
                        ("wAttributes", WORD),
                        ("srWindow", SMALL_RECT),
                        ("dwMaximumWindowSize", DWORD)]

        sbi = CONSOLE_SCREEN_BUFFER_INFO()
        ret = windll.kernel32.GetConsoleScreenBufferInfo(console_handle, byref(sbi))
        if ret == 0:
            return 0
        return sbi.srWindow.Right+1

    elif os.name == 'posix':
        from fcntl import ioctl
        from termios import TIOCGWINSZ
        from array import array

        winsize = array("H", [0] * 4)
        try:
            ioctl(sys.stdout.fileno(), TIOCGWINSZ, winsize)
        except IOError:
            pass
        return (winsize[1], winsize[0])[0]

    return 80 
开发者ID:einstein95,项目名称:crunchy-xml-decoder,代码行数:58,代码来源:wget.py


注:本文中的ctypes.wintypes.SHORT属性示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。