是否可以使用标准Python库在Windows中获得整体游标位置?
答案 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