Получение позиции курсора в Python
Можно ли получить общую позицию курсора в Windows, используя стандартные библиотеки Python?
- убить main thead из дочернего потока python
- Уведомление с использованием python
- Библиотека уведомлений для Windows
- Как заставить Windows знать о службе, которую я написал на Python?
- kivy с ошибкой импорта pycharm
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.
Используя стандартную библиотеку 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())
- Центрирование меток x-tick между отметками в matplotlib
- как эффективно получить k больших элементов списка в python
- Изменить файл create / access / write timestamp с помощью python под окнами
- os.path.join не правильно форматирует путь
- python: почему os.makedirs вызывают WindowsError?
- Очистить экран в python
- Python – Как открыть общий доступ к Windows с использованием имени пользователя и пароля
- RuntimeError для Windows, использующих многопроцессорность python
- Как запустить несколько других скриптов python вместе и отправить их аргументы?
- Изменение среды по умолчанию в anaconda
- Как я могу создать программу, которая запускается только при вставке USB-накопителя?