文件名称:易语言MBR读写
文件大小:16KB
文件格式:E
更新时间:2021-11-08 10:25:10
MBR
读写MBR的,不要乱试所电脑的 .版本 2 .支持库 spec 连续赋值 (“”, 编辑框2.内容, 编辑框3.内容, 编辑框4.内容) .如果真 (读取MBR (buffer)) 调试输出 (buffer) 字节集到十六进制 (MBR文本, buffer, “ ”) .如果真结束 MBR分割处理 = 分割文本 (MBR文本, “ ”, ) .计次循环首 (取数组成员数 (MBR分割处理), i) .如果真 (i ≤ 446) 编辑框2.内容 = 编辑框2.内容 + 到十六进制 (buffer [i]) + “ ” .如果真结束 .如果真 (447 ≤ i 且 i ≤ 510) 编辑框3.内容 = 编辑框3.内容 + 到十六进制 (buffer [i]) + “ ” .如果真结束 .如果真 (511 ≤ i 且 i ≤ 512) 编辑框4.内容 = 编辑框4.内容 + 到十六进制 (buffer [i]) + “ ” .如果真结束 .计次循环尾 () .子程序 十六进制到字节集, 字节集, 公开, 若参数一不为空,将返回空字节集 .参数 字节集变量, 字节集, 参考 可空, 用来保存转换后的字节集数据.若空,以返回值返回结果 .参数 十六进制文本, 文本型, 参考 .参数 分隔符号, 文本型, 可空, 默认分隔符号为 “,” .局部变量 计次, 整数型 .局部变量 文本, 文本型, , "0" .如果真 (是否为空 (分隔符号)) 分隔符号 = “,” .如果真结束 文本 = 分割文本 (十六进制文本, 分隔符号, ) .如果真 (0 = 取数组成员数 (文本)) 返回 ({ }) .如果真结束 字节集变量 = 取空白字节集 (取数组成员数 (文本)) 计次 = 1 .判断循环首 (计次 ≤ 取数组成员数 (文本)) 字节集变量 [计次] = 到十进制 (文本 [计次]) 计次 = 计次 + 1 .判断循环尾 () .如果真 (是否为空 (字节集变量)) 返回 (字节集变量) .如果真结束 返回 ({ }) .子程序 到十六进制, 文本型, 公开, 返回转换后的十六进制文本 .参数 十进制数据, 整数型, , 传入十进制整型数据 .局部变量 结果, 文本型 结果 = 取十六进制文本 (十进制数据) .如果真 (取文本长度 (结果) % 2 = 1) 返回 (“0” + 结果) .如果真结束 返回 (结果) .子程序 字节集到十六进制, 文本型, 公开, 若参数一不为空,将返回空文本 .参数 文本变量, 文本型, 参考 可空, 保存转换后的十六进制.若空,以返回值返回结果 .参数 字节集数据, 字节集, 参考 .参数 分隔符号, 文本型, 可空, 默认分隔符号为 “,” .局部变量 计次, 整数型 .如果真 (是否为空 (分隔符号)) 分隔符号 = “,” .如果真结束 .如果真 (0 = 取字节集长度 (字节集数据)) 返回 (“”) .如果真结束 文本变量 = “” 计次 = 1 .判断循环首 (计次 ≠ 取字节集长度 (字节集数据)) 文本变量 = 文本变量 + 到十六进制 (字节集数据 [计次]) + 分隔符号 计次 = 计次 + 1 .判断循环尾 () 文本变量 = 文本变量 + 到十六进制 (字节集数据 [计次]) .如果真 (是否为空 (文本变量)) 返回 (文本变量) .如果真结束 返回 (“”) .子程序 读取MBR, 逻辑型 .参数 Mbrbase, 字节集 .局部变量 device, 整数型 .局部变量 pdevicename, 文本型 .局部变量 count, 整数型 .局部变量 statue, 逻辑型 .局部变量 安全结构, _OVERLAPPED Mbrbase = 取空白字节集 (#MBE结构长度) pdevicename = “\\.\physicaldrive0” device = CreateFile (pdevicename, 到十进制 (“80000000”), 到十进制 (“00000001”), 0, 3, 0, 0) ' .如果真 (device = -1) 返回 (假) .如果真结束 SetFilePointer (device, 0, 0, 0) statue = ReadFile (device, Mbrbase, #MBE结构长度, count, 安全结构) CloseHandle (device) 返回 (statue) .子程序 取整型指针, 整数型, 公开, 返回一个整数型变量的内存指针 .参数 整数型变量, 整数型, 参考 返回 (取整型指针_ (整数型变量, 整数型变量, 0)) .子程序 到十进制, 长整数型, 公开, 成功返回转换后的十进制数值数据,失败返回 -1 .参数 十六文本, 文本型, 参考, 传入十六进制文本型数据,支持大小写文本 .局部变量 十进制, 长整数型, , , 转换后的十进制数值。 StrToInt64ExA (“0x” + 十六文本, 1, 十进制) 返回 (十进制) .子程序 _按钮4_被单击 .局部变量 MBR待写数据, 字节集 .局部变量 待写文本, 文本型 .局部变量 i, 整数型 ' 十六进制到字节集 (MBR待写数据, #MBR文本, “ ”) .判断开始断 (写入MBR (MBR待写数据)) ' 信息框 (“MBR写入成功”, 0, ) .默认 ' 信息框 (“MBR写入失败”, 0, ) .判断结束 .子程序 写入MBR, 逻辑型 .参数 写入MBR字节集, 字节集 .局部变量 device, 整数型 .局部变量 pdevicename, 文本型 .局部变量 count, 整数型 .局部变量 statue, 逻辑型 .局部变量 i, 整数型 .局部变量 安全结构, _OVERLAPPED .局部变量 结果, 逻辑型 .局部变量 MBR数据, 字节集, 静态 pdevicename = “\\.\physicaldrive0” device = CreateFile (pdevicename, 到十进制 (“40000000”), 到十进制 (“00000002”), 0, 3, 0, 0) .如果真 (device = -1) 返回 (假) .如果真结束 SetFilePointer (device, 0, 0, 0) MBR数据 = 写入MBR字节集 结果 = WriteFile (device, MBR数据, 取字节集长度 (写入MBR字节集), count, 安全结构) CloseHandle (device) 返回 (结果) 还有好多DLL,不打了