Можно ли получить общую позицию курсора в Windows с помощью стандартных библиотек Python?
Получение позиции курсора в Python
Ответ 1
win32gui.GetCursorPos(point)
Это возвращает положение курсора в координатах экрана - point = (x, y)
flags, hcursor, (x,y) = win32gui.GetCursorInfo()
Получает информацию о глобальном курсоре.
Ссылки:
- http://msdn.microsoft.com/en-us/library/ms648389(VS.85).aspx
- http://msdn.microsoft.com/en-us/library/ms648390(VS.85).aspx
Я предполагаю, что вы будете использовать привязки 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())
Ответ 6
Используйте Pygame
import pygame
mouse_pos = pygame.mouse.get_pos()
Это возвращает x и y позицию мыши.
Смотрите этот сайт: https://www.pygame.org/docs/ref/mouse.html#pygame.mouse.set_pos