Подтвердить что ты не робот

Получение позиции курсора в Python

Можно ли получить общую позицию курсора в Windows с помощью стандартных библиотек Python?

4b9b3361

Ответ 1

win32gui.GetCursorPos(point)

Это возвращает положение курсора в координатах экрана - point = (x, y)

flags, hcursor, (x,y) = win32gui.GetCursorInfo()

Получает информацию о глобальном курсоре.

Ссылки:

Я предполагаю, что вы будете использовать привязки API python win32 или pywin32.

Ответ 2

Используя стандартную библиотеку ctypes, это должно дать текущие координаты мыши на экране без каких-либо сторонних модулей:

from ctypes import windll, Structure, c_long, byref


class POINT(Structure):
    _fields_ = [("x", c_long), ("y", c_long)]



def queryMousePosition():
    pt = POINT()
    windll.user32.GetCursorPos(byref(pt))
    return { "x": pt.x, "y": pt.y}


pos = queryMousePosition()
print(pos)

Я должен упомянуть, что этот код был взят из примера, найденного здесь. Так что заслуга Nullege.com для этого решения.

Ответ 3

Вы не найдете такую ​​функцию в стандартных библиотеках Python, в то время как эта функция зависит от Windows. Однако, если вы используете ActiveState Python или просто установите модуль win32api на стандартную установку Python Windows, вы можете использовать:

x, y = win32api.GetCursorPos()

Ответ 4

Я нашел способ сделать это, что не зависит от нестандартных библиотек!

Обнаружено это в Tkinter

self.winfo_pointerxy()

Ответ 5

Необходимые условия

Установите Tkinter. Я включил win32api как решение для Windows.

Script

#!/usr/bin/env python

"""Get the current mouse position."""

import logging
import sys

logging.basicConfig(format='%(asctime)s %(levelname)s %(message)s',
                    level=logging.DEBUG,
                    stream=sys.stdout)


def get_mouse_position():
    """
    Get the current position of the mouse.

    Returns
    -------
    dict :
        With keys 'x' and 'y'
    """
    mouse_position = None
    import sys
    if sys.platform in ['linux', 'linux2']:
        pass
    elif sys.platform == 'Windows':
        try:
            import win32api
        except ImportError:
            logging.info("win32api not installed")
            win32api = None
        if win32api is not None:
            x, y = win32api.GetCursorPos()
            mouse_position = {'x': x, 'y': y}
    elif sys.platform == 'Mac':
        pass
    else:
        try:
            import Tkinter  # Tkinter could be supported by all systems
        except ImportError:
            logging.info("Tkinter not installed")
            Tkinter = None
        if Tkinter is not None:
            p = Tkinter.Tk()
            x, y = p.winfo_pointerxy()
            mouse_position = {'x': x, 'y': y}
        print("sys.platform={platform} is unknown. Please report."
              .format(platform=sys.platform))
        print(sys.version)
    return mouse_position

print(get_mouse_position())