易语言单方进程通讯源码
系统结构:加入文本,通讯线程子程序,LeaBin,部署所需零件,撤销所需零件,通讯初始化,部署所需零件,通讯初始化,取通讯参数,通讯发送,Api_MapViewOfFile,Api_OpenFileMapping,Api_CloseHandle,Api_UnmapViewOfFile,Api_CreateFileMappingA,Api_OpenProcess,Api_ReadProcessMemory_int_Eint,Api_ReadProcessMemory_int_Ebin,Api_GetCurrentProcessId,Api_PostThreadMesssgeA,Api_CreateEvent_int,Api_SetEvent,Api_WaitForSingleObject,Api_GetMessageA,Api_CreateThread,
======窗口程序集1
| |
| |------ __启动窗口_创建完毕
| |
| |------ _按钮1_被单击
| |
| |------ 加入文本
| |
| |
======通讯
| |
| |------ 通讯线程子程序
| |
| |------ LeaBin
| |
| |------ _读整数
| |
| |------ _写整数
| |
| |------ _加法
| |
| |
======通讯接收
| |
| |------ _初始化
| |
| |------ _销毁
| |
| |------ 部署所需零件
| |
| |------ 撤销所需零件
| |
| |------ 通讯初始化
| |
| |
======通讯发送
| |
| |------ _初始化
| |
| |------ _销毁
| |
| |------ 部署所需零件
| |
| |------ 通讯初始化
| |
| |------ 取通讯参数
| |
| |------ 通讯发送
| |
| |
======调用的Dll
| |
| |---[dll]------ Api_MapViewOfFile
| |
| |---[dll]------ Api_OpenFileMapping
| |
| |---[dll]------ Api_CloseHandle
| |
| |---[dll]------ Api_UnmapViewOfFile
| |
| |---[dll]------ Api_CreateFileMappingA
| |
| |---[dll]------ Api_OpenProcess
| |
| |---[dll]------ Api_ReadProcessMemory_int_Eint
| |
| |---[dll]------ Api_ReadProcessMemory_int_Ebin
| |
| |---[dll]------ Api_GetCurrentProcessId
| |
| |---[dll]------ Api_PostThreadMesssgeA
| |
| |---[dll]------ Api_CreateEvent_int
| |
| |---[dll]------ Api_SetEvent
| |
| |---[dll]------ Api_WaitForSingleObject
| |
| |---[dll]------ Api_GetMessageA
| |
| |---[dll]------ Api_CreateThread
调用的DLL命令:
.DLL命令 Api_MapViewOfFile, 整数型, "kernel32.dll", "MapViewOfFile"
.参数 hFileMappingObject, 整数型
.参数 dwDesiredAccess, 整数型
.参数 dwFileOffsetHigh, 整数型
.参数 dwFileOffsetLow, 整数型
.参数 dwNumberOfBytesToMap, 整数型
.DLL命令 Api_OpenFileMapping, 整数型, "kernel32.dll", "OpenFileMappingA"
.参数 dwDesiredAccess, 整数型
.参数 bInheritHandle, 整数型
.参数 lpName, 文本型
.DLL命令 Api_CloseHandle, , "kernel32.dll", "CloseHandle"
.参数 hObject, 整数型
.DLL命令 Api_UnmapViewOfFile, 整数型, "kernel32.dll", "UnmapViewOfFile"
.参数 lpBaseAddress, 整数型, ,
.DLL命令 Api_CreateFileMappingA, 整数型, "kernel32.dll", "CreateFileMappingA"
.参数 hFile, 整数型
.参数 lpFileMappigAttributes, 整数型
.参数 flProtect, 整数型
.参数 dwMaximumSizeHigh, 整数型
.参数 dwMaximumSizeLow, 整数型
.参数 lpName, 文本型
.DLL命令 Api_OpenProcess, 整数型, "kernel32.dll", "OpenProcess"
.参数 DesiredAccess, 整数型
.参数 b, 整数型
.参数 Pid, 整数型
.DLL命令 Api_ReadProcessMemory_int_Eint, 逻辑型, "kernel32.dll", "ReadProcessMemory"
.参数 hProcess, 整数型
.参数 BaseAddress, 整数型
.参数 Buffer, 整数型, 传址
.参数 Size, 整数型
.参数 ReadSize, 整数型, 传址
.DLL命令 Api_ReadProcessMemory_int_Ebin, 逻辑型, "kernel32.dll", "ReadProcessMemory"
.参数 hProcess, 整数型
.参数 BaseAddress, 整数型
.参数 Buffer, 字节集, 传址
.参数 Size, 整数型
.参数 ReadSize, 整数型, 传址
.DLL命令 Api_GetCurrentProcessId, 整数型, "kernel32.dll", "GetCurrentProcessId"
.DLL命令 Api_PostThreadMesssgeA, 逻辑型, "user32", "PostThreadMessageA", , 将一个消息放入(寄送)到指定线程的消息队列里,不等待线程处理消息就返回。
.参数 idThread, 整数型, , 线程ID
.参数 wMsg, 整数型, , 消息标识符
.参数 wParam, 整数型, , 具体由消息决定
.参数 lParam, 整数型, , 具体由消息决定
.DLL命令 Api_CreateEvent_int, 整数型, "kernel32", "CreateEventA", , 创建或打开一个命名的或无名的事件对象 如果函数调用成功,函数返回事件对象的句柄。如果对于命名的对象,在函数调用前已经被创建,函数将返回存在的事件对象的句柄
.参数 lpEventAttributes, 整数型, , 一个指向SECURITY_ATTRIBUTES结构的指针,确定返回的句柄是否可被子进程继承。如果lpEventAttributes是NULL,此句柄不能被继承
.参数 bManualReset, 逻辑型, , 指定将事件对象创建成手动复原还是自动复原。如果是TRUE,那么必须用ResetEvent函数来手工将事件的状态复原到无信号状态。如果设置为FALSE,当事件被一个等待线程释放以后,系统将会自动将事件状态复原为无信号状态。
.参数 bInitialState, 逻辑型, , 指定事件对象的初始状态。如果为TRUE,初始状态为有信号状态;否则为无信号状态
.参数 lpname, 整数型, 传址, 指定事件的对象的名称,是一个以0结束的字符串指针。名称的字符格式限定在MAX_PATH之内。名字是对大小写敏感的。
.DLL命令 Api_SetEvent, 逻辑型, "kernel32", "SetEvent", , 将Event事件对象设置为发信号状态
.参数 hEvent, 整数型
.DLL命令 Api_WaitForSingleObject, 整数型, "kernel32", "WaitForSingleObject", , 等待对象
.参数 hHandle, 整数型, , 指定为等待的对象句柄。
.参数 dwMilliseconds, 整数型, , 指定以ms(毫秒)为单位的超时时间。0为立即返回,-1为无限等待。
.DLL命令 Api_GetMessageA, 整数型, "user32", "GetMessageA", 公开, 函数GetMessage 是 从调用线程的消息队列里取得一个消息并将其放于指定的结构。此函数可取得与指定窗口联系的消息和由PostThreadMesssge寄送的线程消息。 如果函数取得WM_QUIT之外的其他消息,返回非零值。如果函数取得WM_QUIT消息,返回值是零。如果出现了错误,返回值是-1。例如,当hWnd是无效的窗口句柄或lpMsg是无效的指针时。若想获得更多的错误信息,请调用GetLastError函数。
.参数 lpMsg, MSG, , 用来保存消息结构的变量。
.参数 hwnd, 整数型, , 取得其消息的窗口的句柄。当其值取Null时,GetMessage为任何属于调用线程的窗口检索消息,线程消息通过PostThreadMessage寄送给调用线程。
.参数 wMsgFilterMin, 整数型, , 指定被检索的最小消息值的整数。
.参数 wMsgFilterMax, 整数型, , 指定被检索的最大消息值的整数。
.DLL命令 Api_CreateThread, 整数型, "kernel32", "CreateThread", , 创建线程
.参数 lpThreadAttributes, 整数型
.参数 dwStackSize, 整数型
.参数 lpStartAddress, 子程序指针, , &子程序指针
.参数 lpParameter, 整数型, , 附加参数
.参数 dwCreationFlags, 整数型
.参数 lpThreadId, 整数型, 传址