易语言扇区读写源码
系统结构:取物理磁盘个数,读扇区,写扇区,WriteFile,CreateFile,SetFilePointer,ReadFileD,CloseHandle,取整数指针,拷贝内存_,
======窗口程序集1
| |
| |------ __启动窗口_创建完毕
| |
| |------ 取物理磁盘个数
| |
| |------ 读扇区
| |
| |------ 写扇区
| |
| |
======调用的Dll
| |
| |---[dll]------ WriteFile
| |
| |---[dll]------ CreateFile
| |
| |---[dll]------ SetFilePointer
| |
| |---[dll]------ ReadFileD
| |
| |---[dll]------ CloseHandle
| |
| |---[dll]------ 取整数指针
| |
| |---[dll]------ 拷贝内存_
调用的DLL命令:
.DLL命令 WriteFile, 整数型, "kernel32", "WriteFile", , 将数据写入一个文件。该函数比lwrite函数要灵活的多。也可将这个函数应用于对通信设备、管道、套接字以及邮槽的处理 TRUE(非零)表示成功,否则返回零。会设置GetLastError
.参数 hFile, 整数型, , 一个文件的句柄
.参数 lpBuffer, 字节集, 传址, 要写入的一个数据缓冲区
.参数 nNumberOfBytesToWrite, 整数型, , 要写入数据的字节数量。如写入零字节,表示什么都不写入,但会更新文件的“上一次修改时间”。针对位于远程系统的命名管道,限制在65535个字节以内
.参数 lpNumberOfBytesWritten, 整数型, 传址, 实际写入文件的字节数量
.参数 lpOverlapped, 整数型, , OVERLAPPED,倘若在指定FILE_FLAG_OVERLAPPED的前提下打开文件,这个参数就必须引用一个特殊的结构。那个结构定义了一次异步写操作。否则,该参数应置为空(将声明变为ByVal As 并传递零值);
.DLL命令 CreateFile, 整数型, "kernel32.dll", "CreateFileA"
.参数 lpFileName, 文本型
.参数 dwDesiredAccess, 整数型
.参数 dwShareMode, 整数型
.参数 lpSecurityAttributes, 整数型, , SECURITY_ATTRIBUTES结构体指针
.参数 dwCreationDisposition, 整数型
.参数 dwFlagsAndAttributes, 整数型
.参数 hTemplateFile, 整数型
.DLL命令 SetFilePointer, 整数型, "kernel32.dll", "SetFilePointer"
.参数 hFile, 整数型
.参数 lDistanceToMove, 整数型
.参数 lpDistanceToMoveHigh, 整数型
.参数 dwMoveMethod, 整数型
.DLL命令 ReadFileD, 逻辑型, "kernel32.dll", "ReadFile"
.参数 hFile, 整数型
.参数 lpBuffer, 字节集, 传址
.参数 nNumberOfBytesToRead, 整数型
.参数 pNumberOfBytesRead, 整数型
.参数 pOverlapped, 整数型
.DLL命令 CloseHandle, 逻辑型, "kernel32.dll", "CloseHandle"
.参数 hObject, 整数型
.DLL命令 取整数指针, 整数型, "kernel32.dll", "lstrcpynA", , 用于取整数指针,巧妙利用了该API的返回值
.参数 lpString1, 整数型, 传址
.参数 lpString2, 整数型, 传址
.参数 iMaxLength, 整数型, , 保留,复制长度,设置为0即可
.DLL命令 拷贝内存_, 整数型, "kernel32", "RtlMoveMemory", , RtlMoveMemory
.参数 目标数据地址, 字节集, , lpvDest
.参数 源数据, 字节集, , lpvSource
.参数 尺寸, 整数型, , cbCopy
注:本站源码主要来源于网络收集。如有侵犯您的利益,请联系我们,我们将及时删除!
部分源码可能含有危险代码,(如关机、格式化磁盘等),请看清代码在运行。
由此产生的一切后果本站均不负责。源码仅用于学习使用,如需运用到商业场景请咨询原作者。
使用本站源码开发的产品均与本站无任何关系,请大家遵守国家相关法律。