在Python中获取光标位置

是否有可能使用标准的Python库获得Windows中的整体光标位置?

Solutions Collecting From Web of "在Python中获取光标位置"

win32gui.GetCursorPos(point) 

这将检索光标的位置,在屏幕坐标 – 点=(x,y)

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

检索有关全局游标的信息。

链接:

我假设你将使用python win32 API绑定或pywin32。

使用标准ctypes库,这应该没有任何第三方模块yeved当前屏幕鼠标坐标:

 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())