易语言:从获取DNF游戏内存数据到提取并保存图标全流程代码实现及详解
下面是在原代码基础上添加提取图标功能后的易语言代码。提取图标功能主要是借助 `ExtractIconEx` 这个 Windows API 函数,把提取到的图标保存为图标文件。 ```plaintext .版本 2 .子程序 _超级按钮1_被单击 .局部变量 dump, 字节集 .局部变量 进程ID, 整数型 .局部变量 图标句柄数组, 整数型, , "0" .局部变量 图标数量, 整数型 .局部变量 图标文件路径, 文本型 进程ID = 取进程ID (“dnf.exe”) .判断开始 (进程ID > 0) dump = 读内存字节集 (进程ID, 5368709120, 300 × 1024 × 1024) .判断开始 (dump ≠ { }) 写到文件 (取运行目录 () + “\” + 到文本 (取年份 (取现行时间 ())) + 到文本 (取月份 (取现行时间 ())) + 到文本 (取日 (取现行时间 ())) + “dump.exe”, dump) ' 提取图标 图标数量 = ExtractIconEx (取运行目录 () + “\” + 到文本 (取年份 (取现行时间 ())) + 到文本 (取月份 (取现行时间 ())) + 到文本 (取日 (取现行时间 ())) + “dump.exe”, 0, 图标句柄数组, , 1) .如果 (图标数量 > 0) 图标文件路径 = 取运行目录 () + “\” + 到文本 (取年份 (取现行时间 ())) + 到文本 (取月份 (取现行时间 ())) + 到文本 (取日 (取现行时间 ())) + “icon.ico” 保存图标到文件 (图标句柄数组 [1], 图标文件路径) .否则 信息框 (“图标提取失败”, 0, , ) .如果结束 .默认 信息框 (“数据获取失败”, 0, , ) .判断结束 .默认 信息框 (“请先登录游戏”, 0, , ) .判断结束 返回 () .子程序 ExtractIconEx, 整数型, 系统核心支持库, “ExtractIconExA” .参数 lpszFile, 文本型 .参数 nIconIndex, 整数型 .参数 phiconLarge, 整数型, 数组 .参数 phiconSmall, 整数型, 数组 .参数 nIcons, 整数型 .子程序 保存图标到文件 .参数 图标句柄, 整数型 .参数 保存路径, 文本型 .局部变量 流对象, 类_二进制流 .局部变量 图标信息, 图标信息 .局部变量 图标数据, 字节集 流对象.创建 () 图标信息 = 取图标信息 (图标句柄) 图标数据 = 图标信息.图标数据 流对象.写字节集 (图标数据) 流对象.保存到文件 (保存路径) 流对象.销毁 () ``` 代码说明: 1. `ExtractIconEx` 子程序:这是对 Windows API 函数 `ExtractIconExA` 的声明,其作用是从指定的可执行文件里提取图标。 2. `保存图标到文件` 子程序:该子程序的功能是把图标保存为图标文件。它先创建一个二进制流对象,将图标数据写入流,再把流保存为文件,最后销毁流对象。 3. 在 `_超级按钮1_被单击` 子程序里,当成功获取到游戏进程的内存数据并保存为文件之后,会调用 `ExtractIconEx` 函数提取图标,若提取成功,就调用 `保存图标到文件` 子程序把图标保存为图标文件。 注意事项: - 要保证 `取图标信息` 这个子程序存在,而且能正确获取图标数据。 - 需把 `类_二进制流` 这个类模块添加到易语言项目中,从而实现二进制流的操作。 ######[AI问答 | 954点数解答 | 2026-01-31 18:29:28]
- 超燃年会来袭!诗舞歌戏轮番上阵,共赴欢乐盛宴! (字节豆包 | 206点数解答 | 2025-01-08 10:59:43)343
- Python 实现球类:精准计算半径、表面积与体积,附输入验证与异常处理!(阿里通义 | 261点数解答 | 2024-11-28 21:19:39)343
- Java代码实现从JSON数据中提取ID,涉及“数据”与“项目 - 知识库”结构(字节豆包 | 603点数解答 | 2025-04-15 22:48:51)234
- C++ 实现:计算一排鹅与最高、最矮鹅的身高差及代码详解(字节豆包 | 549点数解答 | 2025-11-16 20:19:06)81
- 编程揭秘:计算 𝑛! 在 𝑃 进制下末尾零个数的方法与代码实现(DeepSeek | 549点数解答 | 2026-01-11 17:49:54)46
- Java技巧:用 indexOf 方法获取字符串中某子字符串所有出现位置( | 691点数解答 | 2023-12-28 19:49:03)316
- 超详细:JDK安装及Windows系统环境变量设置全攻略 (阿里通义 | 376点数解答 | 2024-03-06 17:27:29)352
- 深度揭秘 Oracle Workarea Size Policy:参数调优助力数据库性能飞升(阿里通义 | 372点数解答 | 2024-05-13 10:54:45)226
- 工程师必知!Monkey 流程助力软件稳定性与可靠性提升(百度文心 | 388点数解答 | 2023-11-09 18:28:07)283
- 工程师揭秘:重要 APP 从需求到上线全流程攻略(百度文心 | 334点数解答 | 2023-11-09 18:31:47)282
- 51 单片机:定时器 0 实现 8 个 LED 循环点亮,附代码及优化建议(字节豆包 | 1193点数解答 | 2024-12-27 15:10:29)310
- C++编程:冒泡排序函数模板、txtdata类与bindata类的实现及应用(GPT | 1551点数解答 | 2024-06-01 16:02:33)326