比较 python 中的光标图标位图
Comparing cursor icon bitmaps in python
我想通过比较位图来检查光标图标是否发生了变化。
到目前为止,我已经尝试了下面的代码片段,但它无法正常工作。
import win32api, win32con, win32gui, win32ui
info = win32gui.GetCursorInfo()
hdc = win32ui.CreateDCFromHandle(win32gui.GetDC(0))
hbmp = win32ui.CreateBitmap()
hbmp.CreateCompatibleBitmap(hdc, 35, 35)
hdc = hdc.CreateCompatibleDC()
hdc.DrawIcon((0,0), info[1])
hbmp.SaveBitmapFile(hdc, 'icon.bmp')
此代码仅生成一个黑色矩形位图(大部分可在 Internet 上找到)。一般来说,我宁愿不保存位图,只是将 2 个位图作为图像与枕头进行比较,但我不知道该怎么做。
创建内存DC和内存位图后,SelectObject
用于将内存位图select放入内存DC。只有这样,位图才能起作用。
修改代码:
import win32api, win32con, win32gui, win32ui
info = win32gui.GetCursorInfo()
hdc = win32ui.CreateDCFromHandle(win32gui.GetDC(0))
hbmp = win32ui.CreateBitmap()
hbmp.CreateCompatibleBitmap(hdc, 35, 35)
hdc = hdc.CreateCompatibleDC()
hdc.SelectObject(hbmp)
hdc.DrawIcon((0,0), info[1])
hbmp.SaveBitmapFile(hdc, 'icon.bmp')
win32gui.DestroyIcon(info[1])
win32gui.DeleteObject(hbmp.GetHandle())
hdc.DeleteDC()
当您不再需要该位图时,调用DeleteObject
函数将其删除。
类似的操作适用于游标和内存 DC 释放。
我想通过比较位图来检查光标图标是否发生了变化。
到目前为止,我已经尝试了下面的代码片段,但它无法正常工作。
import win32api, win32con, win32gui, win32ui
info = win32gui.GetCursorInfo()
hdc = win32ui.CreateDCFromHandle(win32gui.GetDC(0))
hbmp = win32ui.CreateBitmap()
hbmp.CreateCompatibleBitmap(hdc, 35, 35)
hdc = hdc.CreateCompatibleDC()
hdc.DrawIcon((0,0), info[1])
hbmp.SaveBitmapFile(hdc, 'icon.bmp')
此代码仅生成一个黑色矩形位图(大部分可在 Internet 上找到)。一般来说,我宁愿不保存位图,只是将 2 个位图作为图像与枕头进行比较,但我不知道该怎么做。
创建内存DC和内存位图后,SelectObject
用于将内存位图select放入内存DC。只有这样,位图才能起作用。
修改代码:
import win32api, win32con, win32gui, win32ui
info = win32gui.GetCursorInfo()
hdc = win32ui.CreateDCFromHandle(win32gui.GetDC(0))
hbmp = win32ui.CreateBitmap()
hbmp.CreateCompatibleBitmap(hdc, 35, 35)
hdc = hdc.CreateCompatibleDC()
hdc.SelectObject(hbmp)
hdc.DrawIcon((0,0), info[1])
hbmp.SaveBitmapFile(hdc, 'icon.bmp')
win32gui.DestroyIcon(info[1])
win32gui.DeleteObject(hbmp.GetHandle())
hdc.DeleteDC()
当您不再需要该位图时,调用DeleteObject
函数将其删除。
类似的操作适用于游标和内存 DC 释放。