在Python中获取光标位置

时间:2010-09-13 07:52:43

标签: python windows

是否可以使用标准Python库在Windows中获得整体游标位置?

12 个答案:

答案 0 :(得分:27)

使用标准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)

我应该提一下,此代码取自here找到的示例 因此,这个解决方案可以归功于Nullege.com。

答案 1 :(得分:22)

win32gui.GetCursorPos(point)

这将在屏幕坐标中检索光标的位置 - point =(x,y)

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

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

链接:

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

答案 2 :(得分:11)

您不会在标准Python库中找到此类函数,而此函数是Windows特定的。但是,如果您使用ActiveState Python,或者只是将win32api模块安装到标准Python Windows安装中,您可以使用:

x, y = win32api.GetCursorPos()

答案 3 :(得分:5)

我找到了一种不依赖于非标准库的方法!

在Tkinter发现这个

self.winfo_pointerxy()

答案 4 :(得分:4)

使用pyautogui

要安装

pip install pyautogui

并找到鼠标指针的位置

import pyautogui
print(pyautogui.position())

这将给出鼠标指针所处的像素位置。

答案 5 :(得分:3)

对于使用本机库的Mac:

import Quartz as q
q.NSEvent.mouseLocation()

#x and y individually
q.NSEvent.mouseLocation().x
q.NSEvent.mouseLocation().y

如果未安装Quartz-包装器:

python3 -m pip install -U pyobjc-framework-Quartz

(该问题指定的是Windows,但由于标题的缘故,很多Mac用户来到这里)

答案 6 :(得分:2)

先决条件

安装Tkinter。我已将win32api作为仅限Windows的解决方案包含在内。

脚本

var str = 'E2*2001/116*0364*31';
console.log(str.match(/^([^*]*\*){3}/)[0]);              // E2*2001/116*0364*
console.log(str.match(/^([^*]*\*){3}/)[0].slice(0, -1)); // E2*2001/116*0364

答案 7 :(得分:1)

如果您正在执行 自动化 ,并且想要获取点击位置的坐标,则最简单,最快捷的方法是:

import pyautogui

while True:
    print(pyautogui.position())

这将跟踪您的鼠标位置并保持打印坐标。

答案 8 :(得分:1)

这是可能的,甚至没有那么混乱!只需使用:

from ctypes import windll, wintypes, byref

def get_cursor_pos():
    cursor = wintypes.POINT()
    windll.user32.GetCursorPos(byref(cursor))
    return (cursor.x, cursor.y)

使用 pyautogui 的答案让我想知道该模块是如何做到的,所以我看了看,结果就是这样。

答案 9 :(得分:0)

使用pygame

import pygame

mouse_pos = pygame.mouse.get_pos()

这将返回鼠标的x和y位置。

访问此网站:https://www.pygame.org/docs/ref/mouse.html#pygame.mouse.set_pos

答案 10 :(得分:0)

sudo add-apt-repository ppa:deadsnakes
sudo apt-get update
sudo apt-get install python3.5 python3.5-tk
# or 2.7, 3.6 etc
# sudo apt-get install python2.7 python2.7-tk
# mouse_position.py
import Tkinter
p=Tkinter.Tk()
print(p.winfo_pointerxy()

或者在命令行中使用单行代码:

python -c "import Tkinter; p=Tkinter.Tk(); print(p.winfo_pointerxy())"
(1377, 379)

答案 11 :(得分:0)

这可能是解决您问题的代码:

$ is_set() {
    declare -p $1 >/dev/null 2>&1
}

$ is_set foo; echo $?
0

$ declare foo

$ is_set foo; echo $?
1