易语言取文件图标转存ICO源码
系统结构:图标句柄取字节集,图标_取文件图标,扫描颜色,透明处理,字节集_字节集查看,字节集_字节集还原,进制_进制转换,进制_到十进制,初始化颜色表,CaptureDC,GetBitsAddress,GetBitsSize,BytesPerLine,Create,SetPixelColor,GetBitmapInfoAddress,GetWidth,GetHeight,WIDTHBYTES,GetColorTableAddress,GetBitCount,BMP文件头转字节集,BMP信息头转字节集,CNoColorTable,GetColorTableSize,NumDIBColorEntries,Write,SHGetFileInfo,GetDC,CreateSolidBrush,FillRect,DrawIconEx,CreateCompatibleBitmap,CreateCompatibleDC,SelectObject,ReleaseDC,DeleteDC,DeleteObject,DestroyIcon,DrawIcon,GetClassLongA,GetDesktopWindow,GetCurrentProcess,lstrcpyn,ReadProcessMemory,WriteProcessMemory,memcpy,CreateDIBSection,BitBlt,GdiFlush,ExtractAssociatedIconA,
======窗口程序集1
| |
| |------ _浏览_被单击
| |
| |------ _保存_被单击
======程序集1
| |
| |------ 图标句柄取字节集
| |
| |------ 图标_取文件图标
| |
| |------ 扫描颜色
| |
| |------ 透明处理
| |
| |------ 字节集_字节集查看
| |
| |------ 字节集_字节集还原
| |
| |------ 进制_进制转换
| |
| |------ 进制_到十进制
| |
| |------ _启动子程序
| |
| |------ _临时子程序
| |
| |
======位图操作类
| |
| |------ _初始化
| |
| |------ _销毁
| |
| |------ 初始化颜色表
| |
| |------ CaptureDC
| |
| |------ GetBitsAddress
| |
| |------ GetBitsSize
| |
| |------ BytesPerLine
| |
| |------ Create
| |
| |------ SetPixelColor
| |
| |------ GetBitmapInfoAddress
| |
| |------ GetWidth
| |
| |------ GetHeight
| |
| |------ WIDTHBYTES
| |
| |------ GetColorTableAddress
| |
| |------ GetBitCount
| |
| |------ BMP文件头转字节集
| |
| |------ BMP信息头转字节集
| |
| |------ CNoColorTable
| |
| |------ GetColorTableSize
| |
| |------ NumDIBColorEntries
| |
| |------ Write
| |
| |
======调用的Dll
| |
| |---[dll]------ SHGetFileInfo
| |
| |---[dll]------ GetDC
| |
| |---[dll]------ CreateSolidBrush
| |
| |---[dll]------ FillRect
| |
| |---[dll]------ DrawIconEx
| |
| |---[dll]------ CreateCompatibleBitmap
| |
| |---[dll]------ CreateCompatibleDC
| |
| |---[dll]------ SelectObject
| |
| |---[dll]------ ReleaseDC
| |
| |---[dll]------ DeleteDC
| |
| |---[dll]------ DeleteObject
| |
| |---[dll]------ DestroyIcon
| |
| |---[dll]------ DrawIcon
| |
| |---[dll]------ GetClassLongA
| |
| |---[dll]------ GetDesktopWindow
| |
| |---[dll]------ GetCurrentProcess
| |
| |---[dll]------ lstrcpyn
| |
| |---[dll]------ ReadProcessMemory
| |
| |---[dll]------ WriteProcessMemory
| |
| |---[dll]------ memcpy
| |
| |---[dll]------ CreateDIBSection
| |
| |---[dll]------ BitBlt
| |
| |---[dll]------ GdiFlush
| |
| |---[dll]------ ExtractAssociatedIconA
调用的DLL命令:
.DLL命令 SHGetFileInfo, 整数型, , "SHGetFileInfo", 公开
.参数 pszPath, 文本型
.参数 dwFileAttributes, 整数型
.参数 psfi, SHFILEINFO
.参数 cbFileInfo, 整数型
.参数 uFlags, 整数型
.DLL命令 GetDC, 整数型, , "GetDC", 公开
.参数 hwnd
.DLL命令 CreateSolidBrush, 整数型, "gdi32.dll", "CreateSolidBrush", 公开
.参数 crColor, 整数型
.DLL命令 FillRect, 整数型, "user32.dll", "FillRect", 公开
.参数 hdc, 整数型
.参数 lpRect, RECT, 传址
.参数 hBrush, 整数型
.DLL命令 DrawIconEx, 整数型, , "DrawIconEx", 公开, 描绘一个图标或鼠标指针
.参数 hdc
.参数 xLeft
.参数 yTop
.参数 hIcon
.参数 cxWidth
.参数 cyWidth
.参数 istepIfAniCur
.参数 hbrFlickerFreeDraw
.参数 diFlags
.DLL命令 CreateCompatibleBitmap, 整数型, "gdi32.dll", "CreateCompatibleBitmap", 公开, 执行成功返回位图句柄,零表示失败
.参数 hdc, 整数型, , 设备场景句柄
.参数 nWidth, 整数型, , 位图宽度
.参数 nHeight, 整数型, , 位图高度
.DLL命令 CreateCompatibleDC, 整数型, "gdi32.dll", "CreateCompatibleDC", 公开, 新设备场景句柄,若出错则为零
.参数 hdc, 整数型, , hdc,源设备场景句柄
.DLL命令 SelectObject, 整数型, "gdi32.dll", "SelectObject", 公开, 每个设备场景都可能有选入其中的图形对象。其中包括位图、刷子、字体、画笔以及区域等等。一次选入设备场景的只能有一个对象。选定的对象会在设备场景的绘图操作中使用。例如,当前选定的画笔决定了在设备场景中描绘的线段颜色及样式,与以前选入设备场景的相同hObject类型的一个对象的句柄,零表示出错。如选定的对象是一个区域(Region),结果就是下列常数之一:SIMPLEREGION, COMPLEXREGION 或 NULLREGION 对区域进行描述, GDI_ERROR 表示出错
.参数 hdc, 整数型, , 一个设备场景的句柄
.参数 hObject, 整数型, , 一个画笔、位图、刷子、字体或区域的句柄
.DLL命令 ReleaseDC, 逻辑型, "user32.dll", "ReleaseDC", 公开
.参数 hwnd, 整数型
.参数 hDC, 整数型
.DLL命令 DeleteDC, 整数型, "gdi32.dll", "DeleteDC", 公开, 删除专用设备场景或信息场景,释放所有相关窗口资源。不要将它用于GetDC函数取回的设备场景,执行成功则为非零,失败则为零
.参数 hdc, 整数型, , 将要删除的设备场景
.DLL命令 DeleteObject, 整数型, "gdi32.dll", "DeleteObject", 公开, 用这个函数删除GDI对象,比如画笔、刷子、字体、位图、区域以及调色板等等。对象使用的所有系统资源都会被释放,非零表示成功,零表示失败
.参数 hObject, 整数型, , 一个GDI对象的句柄
.DLL命令 DestroyIcon, 整数型, "user32", "DestroyIcon", , 清除图标 非零表示成功,零表示失败。会设置GetLastError
.参数 图标句柄, 整数型, , 图标句柄;
.DLL命令 DrawIcon, 整数型, "user32", "DrawIcon"
.参数 hDC, 整数型
.参数 x, 整数型
.参数 y, 整数型
.参数 hIcon, 整数型
.DLL命令 GetClassLongA, 整数型
.参数 hwnd
.参数 m
.DLL命令 GetDesktopWindow, 整数型
.DLL命令 GetCurrentProcess, 整数型, "kernel32.dll", "GetCurrentProcess", , 获取当前进程句柄
.DLL命令 lstrcpyn, 整数型, "kernel32.dll", "lstrcpyn", , 取变量地址,返回内存地址(此API还有其他作用)
.参数 lpString1, 字节集, 传址, 欲取其指针的变量,一定要传址
.参数 lpString2, 字节集, 传址, 欲取其指针的变量一定要传址.重复一次
.参数 iMaxLength, 整数型, , 这里无用,给0
.DLL命令 ReadProcessMemory, 整数型, "kernel32.dll", "ReadProcessMemory", , 读内存数据
.参数 hProcess, 整数型, , 进程句柄
.参数 lpBaseAddress, 整数型, , 内存地址
.参数 lpBuffer, 字节集, 传址, 数据指针
.参数 nSize, 整数型, , 长度
.参数 lpNumberOfBytesWritten, 整数型, , 实际长度
.DLL命令 WriteProcessMemory, 整数型, "kernel32.dll", "WriteProcessMemory", , 写内存数据
.参数 hProcess, 整数型, , 进程句柄
.参数 pBaseAddress, 整数型, , 内存地址
.参数 lpBuffer, 字节集, 传址, 数据指针
.参数 nSize, 整数型, , 长度
.参数 lpNumberOfBytesWritten, 整数型, , 实际写出长度
.DLL命令 memcpy, , "Kernel32.dll", "RtlMoveMemory", , 复制内存(无返回值)
.参数 Destination, 整数型, , 目的指针
.参数 Source, 整数型, , 源指针
.参数 Length, 整数型, , 复制长度
.DLL命令 CreateDIBSection, 整数型, "gdi32.dll", "CreateDIBSection"
.参数 hDC, 整数型
.参数 pBitmapInfo, 字节集, 传址
.参数 un, 整数型
.参数 lplpVoid, 整数型, 传址
.参数 handle, 整数型
.参数 dw, 整数型
.DLL命令 BitBlt, 整数型, "gdi32.dll", "BitBlt"
.参数 hDestDC, 整数型
.参数 x, 整数型
.参数 y, 整数型
.参数 nWidth, 整数型
.参数 nHeight, 整数型
.参数 hSrcDC, 整数型
.参数 xSrc, 整数型
.参数 ySrc, 整数型
.参数 dwRop, 整数型
.DLL命令 GdiFlush, 整数型, "gdi32.dll", "GdiFlush", , 执行任何未决的绘图操作,如所有未决的绘图操作都成功完成,就返回TRUE(非零)。如任何一个操作失败,就返回零值
.DLL命令 ExtractAssociatedIconA, 整数型
.参数 程序句柄, 整数型
.参数 文件名, 文本型
.参数 图标类型, 整数型, 传址
注:本站源码主要来源于网络收集。如有侵犯您的利益,请联系我们,我们将及时删除!
部分源码可能含有危险代码,(如关机、格式化磁盘等),请看清代码在运行。
由此产生的一切后果本站均不负责。源码仅用于学习使用,如需运用到商业场景请咨询原作者。
使用本站源码开发的产品均与本站无任何关系,请大家遵守国家相关法律。