我想在程序运行时更改光标图像(屏幕上的任何地方)。
我尝试使用win32gui加载图像,然后使用win32api更改光标图像,但是出了点问题,并且光标没有显示 我的光标图像是map.cur
import win32api
import time
import win32gui
import win32con
x = win32gui.LoadImage(0,'map.cur',win32con.IMAGE_CURSOR,0,0,win32con.LR_LOADFROMFILE)
win32api.SetCursor(x)
time.sleep(5)
答案 0 :(得分:0)
不建议更改系统光标。出于好奇,可以使用SetSystemCursor
,例如
ctypes.windll.user32.SetSystemCursor(hcursor, 32512) #OCR_NORMAL
有关OCR_NORMAL
和其他光标常量,请参见documentation。
我完全不建议在python上使用此命令,因为很难恢复游标,因此除非用户通过系统设置更改游标,否则用户将被新游标卡住。您可以尝试保存并恢复旧光标,但是如果程序异常退出,此方法将失败。
hold = win32gui.LoadImage(0, 32512, win32con.IMAGE_CURSOR,
0, 0, win32con.LR_SHARED )
hsave = ctypes.windll.user32.CopyImage(hold, win32con.IMAGE_CURSOR,
0, 0, win32con.LR_COPYFROMRESOURCE)
hnew = win32gui.LoadImage(0, 'file.cur',
win32con.IMAGE_CURSOR, 0, 0, win32con.LR_LOADFROMFILE);
ctypes.windll.user32.SetSystemCursor(hcursor, 32512)
time.sleep(5)
#restore the old cursor
ctypes.windll.user32.SetSystemCursor(hsave, 32512)