易语言共享内存检测重复运行模块源码
系统结构:L_重复运行,L_写共享内存,L_读共享内存,检测内存,Z_共享内存_CreateFileMappingA,Z_共享内存_OpenFileMappingA,Z_共享内存_MapViewOfFile,Z_共享内存_CloseHandle,Z_共享内存_UnmapViewOfFile,Z_共享内存_拷贝内存_文本,L_A_取自进程ID,
======程序集1
| |
| |------ _启动子程序
| |
| |
======窗口程序集1
| |
| |------ _按钮1_被单击
| |
| |------ _按钮2_被单击
======程序集1
| |
| |------ _启动子程序
| |
| |------ _临时子程序
| |
| |------ L_重复运行
| |
| |------ L_写共享内存
| |
| |------ L_读共享内存
| |
| |------ 检测内存
| |
| |
======调用的Dll
| |
| |---[dll]------ Z_共享内存_CreateFileMappingA
| |
| |---[dll]------ Z_共享内存_OpenFileMappingA
| |
| |---[dll]------ Z_共享内存_MapViewOfFile
| |
| |---[dll]------ Z_共享内存_CloseHandle
| |
| |---[dll]------ Z_共享内存_UnmapViewOfFile
| |
| |---[dll]------ Z_共享内存_拷贝内存_文本
| |
| |---[dll]------ L_A_取自进程ID
调用的DLL命令:
.DLL命令 Z_共享内存_CreateFileMappingA, 整数型, "kernel32.dll", "CreateFileMappingA"
.参数 文件映射句柄, 整数型, , 指定欲在其中创建映射的一个文件句柄。&HFFFFFFFF&表示在内存中创建一个文件映射
.参数 security对象, 整数型, , SECURITY_ATTRIBUTES,指定一个security对象,在创建文件映射时使用。如果为NULL(用ByVal As Long传递零),表示使用默认security对象
.参数 打开映射方式, 整数型, , 下述常数之一:;PAGE_READONLY:以只读方式打开映射;PAGE_READWRITE:以可读、可写方式打开映射;PAGE_WRITECOPY:为写操作留下备份可组合使用下述一个或多个常数;SEC_COMMIT:为文件映射一个小节中的所有页分配内存;SEC_IMAGE:文件是个可执行文件;SEC_RESERVE:为没有分配实际内存的一个小节保留虚拟内存空间
.参数 文件映射最大长度, 整数型, , 文件映射的最大长度(高32位)
.参数 文件映射的最小长度, 整数型, , 文件映射的最小长度(低32位)。如这个参数和dwMaximumSizeHigh都是零,就用磁盘文件的实际长度
.参数 映射对象名, 文本型, , 指定文件映射对象的名字。如存在这个名字的一个映射,函数就会打开它。用vbNull创建一个无名的文件映射;
.DLL命令 Z_共享内存_OpenFileMappingA, 整数型, "kernel32.dll", "OpenFileMappingA"
.参数 常数, 整数型, , 带有前缀FILE_MAP_???的一个常数。参考MapViewOfFile函数的dwDesiredAccess参数的说明
.参数 进程继承, 逻辑型, , 如这个函数返回的句柄能由当前进程启动的新进程继承,则这个参数为TRUE
.参数 文件映射对象名称, 文本型, , 指定要打开的文件映射对象名称;
.DLL命令 Z_共享内存_MapViewOfFile, 整数型, "kernel32.dll", "MapViewOfFile", , 将一个文件映射对象映射到当前应用程序的地址空间。MapViewOfFileEx允许我们指定一个基本地址来进行映射 文件映射在内存中的起始地址。零表示出错。会设置GetLastError
.参数 hFileMappingObject, 整数型
.参数 dwDesiredAccess, 整数型
.参数 dwFileOffsetHigh, 整数型
.参数 dwFileOffsetLow, 整数型
.参数 dwNumberOfBytesToMap, 整数型
.DLL命令 Z_共享内存_CloseHandle, 逻辑型, "kernel32.dll", "CloseHandle"
.参数 对象句柄, 整数型, , 欲关闭的一个对象的句柄;
.DLL命令 Z_共享内存_UnmapViewOfFile, 逻辑型, "kernel32.dll", "UnmapViewOfFile", , 在当前应用程序的内存地址空间解除对一个文件映射对象的映射 非零表示成功,零表示失败。会设置GetLastError
.参数 lpBaseAddress, 整数型, , 指定要解除映射的一个文件映射的基准地址。这个地址是早先用MapViewOfFile函数获得的;
.DLL命令 Z_共享内存_拷贝内存_文本, , "kernel32.dll", "RtlMoveMemory"
.参数 目标数据, 整数型, , any
.参数 原数据, 文本型, 传址, any
.参数 尺寸, 整数型
.DLL命令 L_A_取自进程ID, 整数型, "kernel32.dll", "GetCurrentProcessId", 公开
易语言卷帘工具箱源码,初始化卷帘,取星期,更换风格,搜索文件,线程搜索,修改底色,获取信息,取信息记录,取网络信息...
易语言仅用核心支持库实现对外部数据库的操作ADODB操作外部数据库例程源码,根据村组查询数据,数据库_读取数据到高级表格,数据库_保存高级表格数据到数据库,数据库_读取数据到列表...
易语言仅用核心支持库实现对外部数据库的操作ADODB操作外部数据库例程源码,根据村组查询数据,数据库_读取数据到高级表格,数据库_保存高级表格数据到数据库,数据库_读取数据到列表...
易语言仅用核心支持库实现对外部数据库的操作ADODB操作外部数据库例程源码,根据村组查询数据,数据库_读取数据到高级表格,数据库_保存高级表格数据到数据库,数据库_读取数据到列表...
易语言两个文件内存中通讯源码,子程序1,打开文件,生成空文件,生成重复字节文件,移到文件首,移到文件尾,移动读写位置,取读写位置,关闭文件,取文件长度,写出字节集,是否在文件尾,取错...
易语言易模块管理器Include目录源码,CopyTo_CreateProcessDebugInfo,CopyTo_CreateThreadDebugInfo,CopyTo_ExitThreadDebugInfo,CopyTo_ExitProcessDebugInfo,CopyTo_LoadDllDebugInfo,CopyTo_UnloadDllDebugInfo,CopyTo_ExceptionDebugInfo,Copy...
易语言卷帘工具箱源码,初始化卷帘,取星期,更换风格,搜索文件,线程搜索,修改底色,获取信息,取信息记录,取网络信息...
子程序1,打开文件,生成空文件,生成重复字节文件,移到文件首,移到文件尾,移动读写位置,取读写位置,关闭文件,取文件长度,写出字节集,是否在文件尾,取错误信息,读入字节集,读入2M字节集,清除文件缓冲区,读入文本,写出文本,写文本行,读入一行,插入字节集,取文件号...
初始化卷帘,取星期,更换风格,搜索文件,线程搜索,修改底色,获取信息,取信息记录,取网络信息...