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

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

win32gui.GetCursorPos(point) 

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

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

Извлекает информацию о глобальном курсоре.

Ссылки:

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

Используя стандартную библиотеку 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 для этого решения.

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

 x, y = win32api.GetCursorPos() 

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

Найдено в Tkinter

 self.winfo_pointerxy() 

Предпосылки

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

скрипт

 #!/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())