有没有一种方法可以使用python将Windows鼠标光标更改为自定义光标?

时间:2019-04-19 11:40:30

标签: python cursor

我希望能够使用python脚本全局地将Windows鼠标光标更改为自定义窗口(具有.ani或.cur扩展名)。是否有任何软件包或模块可以帮助我完成此任务?

3 个答案:

答案 0 :(得分:1)

它不能在全局范围内完成,因为它将破坏安全性约束。不允许应用程序在其他应用程序或系统窗口上进行任何修改。

只能由root / administrator运行的进程才能由System C API完成。可能没有人为此功能创建Python绑定。可能,但是由于使用受限,我认为没有任何Python模块可以这样做。

答案 1 :(得分:0)

您可以使用自己的图像作为鼠标光标。使用 pyglet.image.load 加载图像,然后使用图像和光标的“热点”创建一个ImageMouseCursor。热点是与屏幕上实际指针位置相对应的图像点,例如,箭头的点:

image = pyglet.image.load('cursor.png')
cursor = pyglet.window.ImageMouseCursor(image, 16, 8)
window.set_mouse_cursor(cursor)

您甚至可以直接使用OpenGL渲染鼠标光标。例如,您可以绘制3维光标或粒子轨迹。为此,请子类化MouseCursor并实现您自己的draw方法。即使在应用程序的其余部分中使用其他投影,也会使用默认的pyglet窗口投影调用draw方法。

答案 2 :(得分:0)

是(在Windows中),在Windows中:您需要更改注册表项,然后告诉Windows加载新光标。
这段代码可以达到目的:

import os
import ctypes

path = r"HKEY_CURRENT_USER\Control Panel\Cursors"
cur_loc = r"path\to\cursor.cur"

os.system(f"""REG ADD "{path}" /v Arrow /t REG_EXPAND_SZ /d "{cur_loc}" /f""")

ctypes.windll.user32.SystemParametersInfoA(0x57)