如何制作当前鼠标指针的位图?
我想用Python写一个截图工具。现在我正在研究怎么实现这个功能。我有一个脚本可以使用win32 API来截图,像这里说的那样,但我想在截图中包含鼠标指针。
通过win32gui.GetCursorInfo(),我可以获取鼠标指针的状态(显示/隐藏)、句柄和位置。我的目标是用这个句柄来访问鼠标指针的实际图像,复制它,然后把它放到我的截图中合适的位置。不过,我找不到任何文档说明在得到这个句柄后我可以做些什么。
我在想,可能需要像截图本身那样,获取鼠标指针的设备上下文(DC),创建一个与之兼容的位图,然后用BitBlt把它复制进去。我这样想对吗?
3 个回答
0
另一个选择是使用Python图像库(PIL),这样你可以很简单地编辑位图。
(这比直接使用Windows的API简单多了。)
你可以使用ImageGrab和ImageDraw这两个功能。
0
一旦你通过 GetCursorInfo 获取到光标的图标句柄,你就可以用 DrawIcon 或 DrawIconEx 来绘制它。我想你使用的 Win32 API 模块应该支持这些功能。你确实需要为截图的位图创建一个设备上下文(DC),这样才能把图标渲染到上面。不过,我觉得你不需要为光标图标本身再创建一个设备上下文,使用 DrawIcon 就足够了。
3
Python的win32 API里有没有DrawIconEx这个功能呢?
http://msdn.microsoft.com/en-us/library/ms648065%28v=vs.85%29.aspx
你需要先创建一个可以绘图的环境,然后把这个环境和光标的句柄传进去...
(或者直接用DrawIcon也可以)