API提取文件图标工具

易语言 2020-07-28 18:43:03

API提取文件图标工具

.计次循环首 (总数, I)
处理事件 ()
编辑框1.内容 = “提取第 ” + 到文本 (I) + “ 个图标”
m_pDIB = { }
提取图标扩展_ (文件名, I - 1, 大图标句柄, 小图标句柄, 1)
hdc = GetDC (0) ' 获取屏幕DC
newhdc = 创建内存场景_ (hdc) ' 创建与屏幕兼容的内存DC
hBmp = 创建设备位图_ (hdc, 32, 32) ' 位图句柄 创建32*32设备场景位置
hBmpPrev = 选入设备场景_ (newhdc, hBmp) ' 把位图选入内存DC
mBrush = CreateSolidBrush (#白色) ' 设定墙面背景色为白色 返回(刷子句柄)
FillRect (newhdc, sRect, mBrush) ' 内存场景中刷出白色背景 墙面上刷上白色颜料
DrawIconEx (newhdc, 0, 0, 大图标句柄, 32, 32, 0, 0, #DI_NORMAL) ' 把位图画到内存DC
Create (32, 32, 32, )
hMemDC = 创建内存场景_ (newhdc) ' 创建与屏幕兼容的内存DC
pSrcBits = 0
hDitSect = 创建GDI对象_ (newhdc, m_pDIB, #DIB_RGB_COLORS, pStrcBits, 0, 0)
holdBitmap = 选入设备场景_ (hMemDC, hDitSect)
复制场景位图_ (hMemDC, 0, 0, 32, 32, newhdc, 0, 0, #SRCCOPY)
绘图补充_ ()
BitSize = 32 × WIDTHBYTES (取字节集数据 (取字节集中间 (m_pDIB, 5, 4), #整数型, ) × 取字节集数据 (取字节集中间 (m_pDIB, 13, 2), #整数型, ) × 取字节集数据 (取字节集中间 (m_pDIB, 15, 2), #整数型, ))
memcpy (GetBitsAddress (), pStrcBits, BitSize)
DeleteObject (选入设备场景_ (hMemDC, holdBitmap))
DeleteDC (holdBitmap)
DeleteDC (hMemDC)
写到文件 (文件夹名 + “\” + 到文本 (I) + “.ICO”, Write ())
ReleaseDC (图片框1.取窗口句柄 (), hdc) ' 释放场景
DeleteDC (newhdc) ' 释放内存场景
DeleteObject (hBmpPrev) ' 释放设备场景
.计次循环尾 ()