易语言取硬盘序列号模块源码
系统结构:取硬盘信息,取硬盘信息_ATA,取硬盘信息_IOCTL_STORAGE_QUERY_PROPERTY,ASM_两两颠倒字节集,ASM_16进制文本到字节集,asm_读整型内存,存在其他字符,是否不存在多字节字符,CreateFile,GetLastError,CloseHandle,DeviceIoControl_InStoragePropertyQueryOutStorageDescriptorHeader,DeviceIoControl_InStoragePropertyQuery,HeapAlloc,GetProcessHeap,HeapFree,DeviceIoControl_OutGetVersionOutParams,DeviceIoControl_InSendCmdInParams,ZeroMemory,
======程序集1
| |
| |------ _启动子程序
| |
| |------ _临时子程序
| |
| |------ 取硬盘信息
| |
| |------ 取硬盘信息_ATA
| |
| |------ 取硬盘信息_IOCTL_STORAGE_QUERY_PROPERTY
| |
| |------ ASM_两两颠倒字节集
| |
| |------ ASM_16进制文本到字节集
| |
| |------ asm_读整型内存
| |
| |------ 存在其他字符
| |
| |------ 是否不存在多字节字符
| |
| |
======调用的Dll
| |
| |---[dll]------ CreateFile
| |
| |---[dll]------ GetLastError
| |
| |---[dll]------ CloseHandle
| |
| |---[dll]------ DeviceIoControl_InStoragePropertyQueryOutStorageDescriptorHeader
| |
| |---[dll]------ DeviceIoControl_InStoragePropertyQuery
| |
| |---[dll]------ HeapAlloc
| |
| |---[dll]------ GetProcessHeap
| |
| |---[dll]------ HeapFree
| |
| |---[dll]------ DeviceIoControl_OutGetVersionOutParams
| |
| |---[dll]------ DeviceIoControl_InSendCmdInParams
| |
| |---[dll]------ ZeroMemory
调用的DLL命令:
.DLL命令 CreateFile, 整数型, "kernel32", "CreateFileA", , 这是一个全功能的例程,可打开和创建文件、管道、邮槽、通信服务、设备以及控制台 如执行成功,则返回文件句柄。INVALID_HANDLE_VALUE表示出错,会设置GetLastError。即使函数成功,但若文件存在,且指定了CREATE_ALWAYS ; 或 OPEN_ALWAYS,GetLastError也会设为ERROR_ALREADY_EXISTS
.参数 lpFileName, 文本型, , 要打开的文件的名字
.参数 dwDesiredAccess, 整数型, , 如果为 GENERIC_READ 表示允许对设备进行读访问;如果为 GENERIC_WRITE 表示允许对设备进行写访问(可组合使用);如果为零,表示只允许获取与一个设备有关的信息
.参数 dwShareMode, 整数型, , 零表示不共享; FILE_SHARE_READ 和/或 FILE_SHARE_WRITE 表示允许对文件进行共享访问
.参数 lpSecurityAttributes, 整数型, , SECURITY_ATTRIBUTES,指向一个SECURITY_ATTRIBUTES结构的指针,定义了文件的security特性(如果操作系统支持的话)
.参数 dwCreationDisposition, 整数型, , 下述常数之一:;CREATE_NEW:创建文件;如文件存在则会出错;CREATE_ALWAYS:创建文件,会改写前一个文件;OPEN_EXISTING:文件必须已经存在。由设备提出要求;OPEN_ALWAYS:如文件不存在则创建它;TRUNCATE_EXISTING:讲现有文件缩短为零长度
.参数 dwFlagsAndAttributes, 整数型, , 一个或多个下述常数;FILE_ATTRIBUTE_ARCHIVE:标记归档属性;FILE_ATTRIBUTE_COMPRESSED:将文件标记为已压缩,或者标记为文件在目录中的默认压缩方式;FILE_ATTRIBUTE_NORMAL:默认属性;FILE_ATTRIBUTE_HIDDEN:隐藏文件或目录;FILE_ATTRIBUTE_READONLY:文件为只读;FILE_ATTRIBUTE_SYSTEM:文件为系统文件;FILE_FLAG_WRITE_THROUGH:操作系统不得推迟对文件的写操作;FILE_FLAG_OVERLAPPED:允许对文件进行重叠操作;FILE_FLAG_NO_BUFFERING:禁止对文件进行缓冲处理。文件只能写入磁盘卷的扇区块;FILE_FLAG_RANDOM_ACCESS:针对随机访问对文件缓冲进行优化;FILE_FLAG_SEQUENTIAL_SCAN:针对连续访问对文件缓冲进行优化;FILE_FLAG_DELETE_ON_CLOSE:关闭了上一次打开的句柄后,将文件删除。特别适合临时文件也可在Windows NT下组合使用下述常数标记:SECURITY_ANONYMOUS, SECURITY_IDENTIFICATION, SECURITY_IMPERSONATION, SECURITY_DELEGATION, SECURITY_CONTEXT_TRACKING, SECURITY_EFFECTIVE_ONLY
.参数 hTemplateFile, 整数型, , 如果不为零,则指定一个文件句柄。新文件将从这个文件中复制扩展属性;
.DLL命令 GetLastError, 整数型, "kernel32.dll", "GetLastError", , 针对之前调用的api函数,用这个函数取得扩展错误信息(在vb里使用:在vb中,用Err对象的GetLastError属性获取GetLastError的值。这样做是必要的,因为在api调用返回以及vb调用继续执行期间,vb有时会重设GetLastError的值) 由api函数决定。请参考api32.txt文件,其中列出了一系列错误常数;都以ERROR_前缀起头。常用的错误代码见下表
.DLL命令 CloseHandle, 整数型, "kernel32.dll", "CloseHandle", , 关闭一个内核对象。其中包括文件、文件映射、进程、线程、security和同步对象等。涉及文件处理时,这个函数通常与vb的close命令相似。应尽可能的使用close,因为它支持vb的差错控制。注意这个函数使用的文件句柄与vb的文件编号是完全不同的 非零表示成功,零表示失败。会设置GetLastError
.参数 hObject, 整数型, , 欲关闭的一个对象的句柄;
.DLL命令 DeviceIoControl_InStoragePropertyQueryOutStorageDescriptorHeader, 整数型, "kernel32", "DeviceIoControl", , 对设备执行指定的操作 非零表示成功,零表示失败。会设置GetLastError
.参数 hDevice, 整数型, , 设备句柄
.参数 dwIoControlCode, 整数型
.参数 lpInBuffer, STORAGE_PROPERTY_QUERY
.参数 nInBufferSize, 整数型
.参数 lpOutBuffer, STORAGE_DESCRIPTOR_HEADER
.参数 nOutBufferSize, 整数型
.参数 lpBytesReturned, 整数型, 传址
.参数 lpOverlapped, 整数型
.DLL命令 DeviceIoControl_InStoragePropertyQuery, 整数型, "kernel32", "DeviceIoControl", , 对设备执行指定的操作 非零表示成功,零表示失败。会设置GetLastError
.参数 hDevice, 整数型, , 设备句柄
.参数 dwIoControlCode, 整数型
.参数 lpInBuffer, STORAGE_PROPERTY_QUERY
.参数 nInBufferSize, 整数型
.参数 lpOutBuffer, 整数型
.参数 nOutBufferSize, 整数型
.参数 lpBytesReturned, 整数型, 传址
.参数 lpOverlapped, 整数型
.DLL命令 HeapAlloc, 整数型, "kernel32.dll", "HeapAlloc", , 从堆中分配内存
.参数 hHeap, 整数型
.参数 dwFlags, 整数型
.参数 dwBytes, 整数型
.DLL命令 GetProcessHeap, 整数型, "kernel32.dll", "GetProcessHeap", , 获取调用过程堆句柄
.DLL命令 HeapFree, 整数型, "kernel32.dll", "HeapFree", , 释放从堆中分配的内存
.参数 hHeap, 整数型
.参数 dwFlags, 整数型
.参数 lpMem, 整数型
.DLL命令 DeviceIoControl_OutGetVersionOutParams, 整数型, "kernel32", "DeviceIoControl", , 对设备执行指定的操作 非零表示成功,零表示失败。会设置GetLastError
.参数 hDevice, 整数型, , 设备句柄
.参数 dwIoControlCode, 整数型, , 带有 FSCTL_ 前缀的常数。参考设备控制选项的部分列表
.参数 lpInBuffer, 整数型, , 具体取决于dwIoControlCode参数。参考设备控制选项的部分列表
.参数 nInBufferSize, 整数型, , 输入缓冲区的长度
.参数 lpOutBuffer, GETVERSIONOUTPARAMS, , 具体取决于dwIoControlCode参数。参考设备控制选项的部分列表
.参数 nOutBufferSize, 整数型, , 输出缓冲区的长度
.参数 lpBytesReturned, 整数型, 传址, 实际装载到输出缓冲区的字节数量
.参数 lpOverlapped, 整数型, , OVERLAPPED,这个结构用于重叠操作。针对同步操作,请用ByVal As Long传递零值;
.DLL命令 DeviceIoControl_InSendCmdInParams, 整数型, "kernel32", "DeviceIoControl", , 对设备执行指定的操作 非零表示成功,零表示失败。会设置GetLastError
.参数 hDevice, 整数型, , 设备句柄
.参数 dwIoControlCode, 整数型, , 带有 FSCTL_ 前缀的常数。参考设备控制选项的部分列表
.参数 lpInBuffer, SENDCMDINPARAMS, , 具体取决于dwIoControlCode参数。参考设备控制选项的部分列表
.参数 nInBufferSize, 整数型, , 输入缓冲区的长度
.参数 lpOutBuffer, 整数型, , 具体取决于dwIoControlCode参数。参考设备控制选项的部分列表
.参数 nOutBufferSize, 整数型, , 输出缓冲区的长度
.参数 lpBytesReturned, 整数型, 传址, 实际装载到输出缓冲区的字节数量
.参数 lpOverlapped, 整数型, , OVERLAPPED,这个结构用于重叠操作。针对同步操作,请用ByVal As Long传递零值;
.DLL命令 ZeroMemory, , "kernel32.dll", "RtlZeroMemory", , 将一块内存置零
.参数 Destination, 整数型
.参数 Length, 整数型
易语言卷帘工具箱源码,初始化卷帘,取星期,更换风格,搜索文件,线程搜索,修改底色,获取信息,取信息记录,取网络信息...
易语言仅用核心支持库实现对外部数据库的操作ADODB操作外部数据库例程源码,根据村组查询数据,数据库_读取数据到高级表格,数据库_保存高级表格数据到数据库,数据库_读取数据到列表...
易语言仅用核心支持库实现对外部数据库的操作ADODB操作外部数据库例程源码,根据村组查询数据,数据库_读取数据到高级表格,数据库_保存高级表格数据到数据库,数据库_读取数据到列表...
易语言仅用核心支持库实现对外部数据库的操作ADODB操作外部数据库例程源码,根据村组查询数据,数据库_读取数据到高级表格,数据库_保存高级表格数据到数据库,数据库_读取数据到列表...
易语言两个文件内存中通讯源码,子程序1,打开文件,生成空文件,生成重复字节文件,移到文件首,移到文件尾,移动读写位置,取读写位置,关闭文件,取文件长度,写出字节集,是否在文件尾,取错...
易语言易模块管理器Include目录源码,CopyTo_CreateProcessDebugInfo,CopyTo_CreateThreadDebugInfo,CopyTo_ExitThreadDebugInfo,CopyTo_ExitProcessDebugInfo,CopyTo_LoadDllDebugInfo,CopyTo_UnloadDllDebugInfo,CopyTo_ExceptionDebugInfo,Copy...
易语言卷帘工具箱源码,初始化卷帘,取星期,更换风格,搜索文件,线程搜索,修改底色,获取信息,取信息记录,取网络信息...
子程序1,打开文件,生成空文件,生成重复字节文件,移到文件首,移到文件尾,移动读写位置,取读写位置,关闭文件,取文件长度,写出字节集,是否在文件尾,取错误信息,读入字节集,读入2M字节集,清除文件缓冲区,读入文本,写出文本,写文本行,读入一行,插入字节集,取文件号...
初始化卷帘,取星期,更换风格,搜索文件,线程搜索,修改底色,获取信息,取信息记录,取网络信息...