兩個文件內存中通訊
系統結構:子程序1,打開文件,生成空文件,生成重復字節文件,移到文件首,移到文件尾,移動讀寫位置,取讀寫位置,關閉文件,取文件長度,寫出字節集,是否在文件尾,取錯誤信息,讀入字節集,讀入2M字節集,清除文件緩沖區,讀入文本,寫出文本,寫文本行,讀入一行,插入字節集,取文件號,取映射對象名,打開文件,初始化_從文件創建,初始化_從內存創建,從文件號創建,初始化_從映射對象名創建,關閉,關閉對象,取首地址,取讀寫位置,移動讀寫位置,移到首位置,移到尾位置,讀出字節集,讀出文本,讀出字節,讀出短整數,讀出整數,讀出長整數,讀出小數,讀出雙精度小數,讀出邏輯值,讀出日期時間型,寫入字節集,寫入文本,寫入小數,寫入雙精度小數,寫入字節,寫入短整數,寫入整數,寫入長整數,寫入日期時間,寫入邏輯,取錯誤信息,插入字節集,插入文本,插入小數,插入雙精度小數,插入字節,插入短整數,插入整數,插入長整數,插入日期時間,插入邏輯,取文件映射尺寸,尋找字節集,中止尋找字節集,取尋找字節集進度,刪除數據,取文件映射對象名,WriteFile,CloseHandle,GetFileSize,GetLastError,FormatMessage,ReadFile,CreateFile,SetFilePointer,LockFile,UnlockFile,FlushFileBuffers,FlushViewOfFile,取文件路徑目錄_,CreateFileMapping1,CreateFileMapping2,MapViewOfFile,UnmapViewOfFile,GlobalLock,GlobalHandle,OpenFileMapping,GlobalSize,CopyMemory,CopyMemory_s,CopyMemory_x,CopyMemory_sj,CopyMemory_d,CopyMemory_z,CopyMemory_c,CopyMemory_r,MoveMemory,VirtualQuery,進程權限提升_,進程優先級_,進程偽句柄_,打開令牌,恢復權限,獲取令牌特權,置進程優先級_,
======程序集1
| |
| |------ _啟動子程序
| |
| |------ _臨時子程序
| |
| |------ 子程序1
| |
| |
======文件讀寫
| |
| |------ _初始化
| |
| |------ _銷毀
| |
| |------ 打開文件
| |
| |------ 生成空文件
| |
| |------ 生成重復字節文件
| |
| |------ 移到文件首
| |
| |------ 移到文件尾
| |
| |------ 移動讀寫位置
| |
| |------ 取讀寫位置
| |
| |------ 關閉文件
| |
| |------ 取文件長度
| |
| |------ 寫出字節集
| |
| |------ 是否在文件尾
| |
| |------ 取錯誤信息
| |
| |------ 讀入字節集
| |
| |------ 讀入2M字節集
| |
| |------ 清除文件緩沖區
| |
| |------ 讀入文本
| |
| |------ 寫出文本
| |
| |------ 寫文本行
| |
| |------ 讀入一行
| |
| |------ 插入字節集
| |
| |------ 取文件號
| |
| |
======文件映射
| |
| |------ _初始化
| |
| |------ _銷毀
| |
| |------ 取映射對象名
| |
| |------ 打開文件
| |
| |------ 初始化_從文件創建
| |
| |------ 初始化_從內存創建
| |
| |------ 從文件號創建
| |
| |------ 初始化_從映射對象名創建
| |
| |------ 關閉
| |
| |------ 關閉對象
| |
| |------ 取首地址
| |
| |------ 取讀寫位置
| |
| |------ 移動讀寫位置
| |
| |------ 移到首位置
| |
| |------ 移到尾位置
| |
| |------ 讀出字節集
| |
| |------ 讀出文本
| |
| |------ 讀出字節
| |
| |------ 讀出短整數
| |
| |------ 讀出整數
| |
| |------ 讀出長整數
| |
| |------ 讀出小數
| |
| |------ 讀出雙精度小數
| |
| |------ 讀出邏輯值
| |
| |------ 讀出日期時間型
| |
| |------ 寫入字節集
| |
| |------ 寫入文本
| |
| |------ 寫入小數
| |
| |------ 寫入雙精度小數
| |
| |------ 寫入字節
| |
| |------ 寫入短整數
| |
| |------ 寫入整數
| |
| |------ 寫入長整數
| |
| |------ 寫入日期時間
| |
| |------ 寫入邏輯
| |
| |------ 取錯誤信息
| |
| |------ 插入字節集
| |
| |------ 插入文本
| |
| |------ 插入小數
| |
| |------ 插入雙精度小數
| |
| |------ 插入字節
| |
| |------ 插入短整數
| |
| |------ 插入整數
| |
| |------ 插入長整數
| |
| |------ 插入日期時間
| |
| |------ 插入邏輯
| |
| |------ 取文件映射尺寸
| |
| |------ 尋找字節集
| |
| |------ 中止尋找字節集
| |
| |------ 取尋找字節集進度
| |
| |------ 刪除數據
| |
| |------ 取文件映射對象名
| |
| |
======調用的Dll
| |
| |---[dll]------ WriteFile
| |
| |---[dll]------ CloseHandle
| |
| |---[dll]------ GetFileSize
| |
| |---[dll]------ GetLastError
| |
| |---[dll]------ FormatMessage
| |
| |---[dll]------ ReadFile
| |
| |---[dll]------ CreateFile
| |
| |---[dll]------ SetFilePointer
| |
| |---[dll]------ LockFile
| |
| |---[dll]------ UnlockFile
| |
| |---[dll]------ FlushFileBuffers
| |
| |---[dll]------ FlushViewOfFile
| |
| |---[dll]------ 取文件路徑目錄_
| |
| |---[dll]------ CreateFileMapping1
| |
| |---[dll]------ CreateFileMapping2
| |
| |---[dll]------ MapViewOfFile
| |
| |---[dll]------ UnmapViewOfFile
| |
| |---[dll]------ GlobalLock
| |
| |---[dll]------ GlobalHandle
| |
| |---[dll]------ OpenFileMapping
| |
| |---[dll]------ GlobalSize
| |
| |---[dll]------ CopyMemory
| |
| |---[dll]------ CopyMemory_s
| |
| |---[dll]------ CopyMemory_x
| |
| |---[dll]------ CopyMemory_sj
| |
| |---[dll]------ CopyMemory_d
| |
| |---[dll]------ CopyMemory_z
| |
| |---[dll]------ CopyMemory_c
| |
| |---[dll]------ CopyMemory_r
| |
| |---[dll]------ MoveMemory
| |
| |---[dll]------ VirtualQuery
======窗口程序集1
| |
| |------ __啟動窗口_創建完畢
| |
| |------ _按鈕_從內存創建_被單擊
| |
| |------ _按鈕_讀數據_被單擊
| |
| |------ _按鈕_關閉_被單擊
| |
| |------ _按鈕_從內存創建1_被單擊
| |
| |------ _按鈕_寫數據_被單擊
| |
| |------ _按鈕_讀數據1_被單擊
| |
| |------ _按鈕_關閉1_被單擊
| |
| |
======窗口程序集2
| |
| |------ __啟動窗口1_創建完畢
======窗口程序集1
| |
| |------ __啟動窗口_創建完畢
| |
| |------ _按鈕_從內存創建_被單擊
| |
| |------ _按鈕_寫數據_被單擊
| |
| |------ _按鈕_讀數據_被單擊
| |
| |------ _按鈕_關閉_被單擊
| |
| |------ _按鈕_從內存創建1_被單擊
| |
| |------ _按鈕_讀數據1_被單擊
| |
| |------ _按鈕_關閉1_被單擊
| |
| |
======窗口程序集2
| |
| |------ __啟動窗口1_創建完畢
======窗口程序集1
| |
| |------ __啟動窗口_創建完畢
| |
| |------ 進程權限提升_
| |
| |------ 進程優先級_
| |
| |------ _按鈕_從內存創建_被單擊
| |
| |------ _按鈕_讀數據_被單擊
| |
| |------ _按鈕_關閉_被單擊
| |
| |------ _按鈕_寫數據1_被單擊
| |
| |
======窗口程序集2
| |
| |------ __啟動窗口1_創建完畢
| |
| |
======調用的Dll
| |
| |---[dll]------ 進程偽句柄_
| |
| |---[dll]------ 打開令牌
| |
| |---[dll]------ 恢復權限
| |
| |---[dll]------ 獲取令牌特權
| |
| |---[dll]------ 置進程優先級_
======窗口程序集1
| |
| |------ __啟動窗口_創建完畢
| |
| |------ _按鈕_從內存創建_被單擊
| |
| |------ _按鈕_寫數據_被單擊
| |
| |------ _按鈕_讀數據_被單擊
| |
| |------ _按鈕_關閉_被單擊
| |
| |
======窗口程序集2
| |
| |------ __啟動窗口1_創建完畢
調用的DLL命令:
.DLL命令 WriteFile, 邏輯型, "kernel32.dll", "WriteFile", , (非零)表示成功,否則返回零。
.參數 文件句柄, 整數型, , hFile,一個文件的句柄
.參數 數據緩沖區, 字節集, 傳址, lpBuffer,要寫入的一個數據緩沖區
.參數 欲寫入字節數量, 整數型, , nNumberOfBytesToWrite,要寫入數據的字節數量。如寫入零字節,表示什么都不寫入,但會更新文件的“上一次修改時間”。針對位于遠程系統的命名管道,限制在65535個字節以內
.參數 實際寫入字節數量, 整數型, 傳址, lpNumberOfBytesWritten,實際寫入文件的字節數量
.參數 特殊結構, 整數型, , lpOverlapped,倘若在指定FILE_FLAG_OVERLAPPED的前提下打開文件,這個參數就必須引用一個特殊的結構。那個結構定義了一次異步寫操作。否則,該參數應置為空(將聲明變為ByVal As Long,并傳遞零值)
.DLL命令 CloseHandle, 整數型, "kernel32", "CloseHandle"
.參數 對象句柄, 整數型
.DLL命令 GetFileSize, 整數型, "kernel32.dll", "GetFileSize"
.參數 文件號, 整數型, , hFile
.參數 文件尺寸, 整數型, 傳址, lpFileSize
.DLL命令 GetLastError, 整數型, "kernel32", "GetLastError"
.DLL命令 FormatMessage, 整數型, "kernel32.dll", "FormatMessageA"
.參數 dwFlags, 整數型
.參數 lpSource, 整數型, , Any
.參數 消息ID, 整數型
.參數 語言ID, 整數型, , 現在系統不支持了,置0
.參數 緩沖區, 文本型
.參數 緩沖區大小, 整數型
.參數 Arguments, 整數型
.DLL命令 ReadFile, 整數型, "kernel32", "ReadFile", , ""
.參數 hFile, 整數型, , 文件的句柄
.參數 lpBuffer, 字節集, 傳址, 用于保存讀入數據的一個緩沖區
.參數 nNumberOfBytesToRead, 整數型, , 要讀入的字符數
.參數 lpNumberOfBytesRead, 整數型, 傳址, 從文件中實際讀入的字符數
.參數 lpOverlapped, 整數型, , 如文件打開時指定了FILE_FLAG_OVERLAPPED,那么必須用這個參數引用一個特殊的結構。那個結構定義了一次異步讀取操作。否則,應將這個參數設為NULL(將函數聲明成ByVal As Long,并傳遞零值)
.DLL命令 CreateFile, 整數型, "kernel32.dll", "CreateFileA", , ""
.參數 lpFileName, 文本型, , ""
.參數 dwDesiredAccess, 整數型, , ""
.參數 dwShareMode, 整數型, , ""
.參數 lpSecurityAttributes, 整數型, , ""
.參數 dwCreationDisposition, 整數型, , ""
.參數 dwFlagsAndAttributes, 整數型, , ""
.參數 hTemplateFile, 整數型, , ""
.DLL命令 SetFilePointer, 整數型, "kernel32.dll", "SetFilePointer", , ""
.參數 hFile, 整數型, , ""
.參數 lDistanceToMove, 整數型, , ""
.參數 lpDistanceToMoveHigh, 整數型, 傳址, ""
.參數 dwMoveMethod, 整數型, , ""
.DLL命令 LockFile, 整數型, "kernel32", "LockFile", , ""
.參數 hFile, 整數型, , ""
.參數 dwFileOffsetLow, 整數型, , ""
.參數 dwFileOffsetHigh, 整數型, , ""
.參數 nNumberOfBytesToLockLow, 整數型, , ""
.參數 nNumberOfBytesToLockHigh, 整數型, , ""
.DLL命令 UnlockFile, 整數型, "kernel32", "UnlockFile", , ""
.參數 hFile, 整數型, , ""
.參數 dwFileOffsetLow, 整數型, , ""
.參數 dwFileOffsetHigh, 整數型, , ""
.參數 nNumberOfBytesToUnlockLow, 整數型, , ""
.參數 nNumberOfBytesToUnlockHigh, 整數型, , ""
.DLL命令 FlushFileBuffers, 邏輯型, "kernel32", "FlushFileBuffers"
.參數 hFile, 整數型, , ""
.DLL命令 FlushViewOfFile, 整數型, "kernel32", "FlushViewOfFile", , 將寫入文件映射緩沖區的所有數據都刷新到磁盤
.參數 lpBaseAddress, , , 包含了刷新基本地址的一個Long值(參考注解)
.參數 dwNumberOfBytesToFlush, , , 欲刷新的字節數
.DLL命令 取文件路徑目錄_, 邏輯型, "shlwapi.dll", "PathRemoveFileSpecA", , 如:"c:\windows\boot.ini"返回"c:\windows"
.參數 路徑文本, 文本型, , pszPath
.DLL命令 CreateFileMapping1, 整數型, "kernel32", "CreateFileMappingA", , 創建文件映射對象。成功就返回文件映射對象句柄
.參數 hFile, 整數型, , 欲在其中創建映射的一個已經打開的磁盤文件句柄
.參數 lpFileMappigAttributes, 整數型, , 通常用0表示使用默認安全對象
.參數 flProtect, 整數型, , 打開映射的方式(用API常數表示的讀/寫或其它)
.參數 dwMaximumSizeHigh, 整數型, , 表示文件映射的最大長度的高32位。通常均設為0表示磁盤文件的實際長度
.參數 dwMaximumSizeLow, 整數型, , 表示文件映射的最大長度的低32位。通常均設為0表示磁盤文件的實際長度
.參數 lpName, 文本型, , 指定文件映射對象的名稱
.DLL命令 CreateFileMapping2, 整數型, "kernel32", "CreateFileMappingA", , 創建文件映射對象。成功就返回文件映射對象句柄
.參數 hFile, 整數型, , 欲在其中創建映射的一個已經打開的磁盤文件句柄
.參數 lpFileMappigAttributes, 整數型, , 通常用0表示使用默認安全對象
.參數 flProtect, 整數型, , 打開映射的方式(用API常數表示的讀/寫或其它)
.參數 dwMaximumSizeHigh, 整數型, , 表示文件映射的最大長度的高32位。通常均設為0表示磁盤文件的實際長度
.參數 dwMaximumSizeLow, 整數型, , 表示文件映射的最大長度的低32位。通常均設為0表示磁盤文件的實際長度
.參數 lpName, 整數型, , 指定文件映射對象的名稱
.DLL命令 MapViewOfFile, 整數型, "kernel32.dll", "MapViewOfFile", , 將一個文件映射對象映射到當前應用程序空間。成功就返回文件映射在內存中的起始地址
.參數 hFileMappingObject, 整數型, , 文件映射對象的句柄
.參數 dwDesiredAccess, 整數型, , 用API常數表示的對文件映射的訪問方式
.參數 dwFileOffsetHigh, 整數型, , 表示文件中的映射起點的高32位。通常均設為0表示從文件的起始處開始映射
.參數 dwFileOffsetLow, 整數型, , 表示文件中的映射起點的低32位。通常均設為0表示從文件的起始處開始映射
.參數 dwNumberOfBytesToMap, 整數型, , 要映射的字節數,通常設為0表示映射整個文件映射對象。
.DLL命令 UnmapViewOfFile, 整數型, "kernel32.dll", "UnmapViewOfFile", , 解除當前應用程序中的一個文件映射對象的映射地址空間。非零表示成功,零表示失敗
.參數 lpBaseAddress, 整數型, , 要解除映射的文件映射起始地址。
.DLL命令 GlobalLock, 整數型, "kernel32.dll", "GlobalLock"
.參數 hMem, 整數型
.DLL命令 GlobalHandle, 整數型, "kernel32.dll", "GlobalHandle"
.參數 wMem, 整數型
.DLL命令 OpenFileMapping, 整數型, "kernel32.dll", "OpenFileMappingA", , 打開一個現成的文件映射對象
.參數 dwDesiredAccess, 整數型, , 用API常數表示的對文件映射的訪問方式
.參數 bInheritHandle, 整數型, , 返回值對與子進程的繼承屬性,常設為False;
.參數 lpName, 文本型, , 指定要打開的文件映射對象名稱
.DLL命令 GlobalSize, 整數型, "kernel32.dll", "GlobalSize"
.參數 hMem, 整數型
.DLL命令 CopyMemory, 整數型, "kernel32.dll", "RtlMoveMemory"
.參數 ptr, 整數型
.參數 struct, 字節集, 傳址
.參數 cb, 整數型
.DLL命令 CopyMemory_s, 整數型, "kernel32.dll", "RtlMoveMemory"
.參數 ptr, 整數型
.參數 struct, 文本型, 傳址
.參數 cb, 整數型
.DLL命令 CopyMemory_x, 整數型, "kernel32.dll", "RtlMoveMemory"
.參數 ptr, 整數型
.參數 struct, 小數型, 傳址
.參數 cb, 整數型
.DLL命令 CopyMemory_sj, 整數型, "kernel32.dll", "RtlMoveMemory"
.參數 ptr, 整數型
.參數 struct, 雙精度小數型, 傳址
.參數 cb, 整數型
.DLL命令 CopyMemory_d, 整數型, "kernel32.dll", "RtlMoveMemory"
.參數 ptr, 整數型
.參數 struct, 短整數型, 傳址
.參數 cb, 整數型
.DLL命令 CopyMemory_z, 整數型, "kernel32.dll", "RtlMoveMemory"
.參數 ptr, 整數型
.參數 struct, 整數型, 傳址
.參數 cb, 整數型
.DLL命令 CopyMemory_c, 整數型, "kernel32.dll", "RtlMoveMemory"
.參數 ptr, 整數型
.參數 struct, 長整數型, 傳址
.參數 cb, 整數型
.DLL命令 CopyMemory_r, 整數型, "kernel32.dll", "RtlMoveMemory"
.參數 ptr, 整數型
.參數 struct, 日期時間型, 傳址
.參數 cb, 整數型
.DLL命令 MoveMemory, 整數型, "kernel32.dll", "RtlMoveMemory", , ""
.參數 ptr, 整數型
.參數 struct, 整數型
.參數 cb, 整數型
.DLL命令 VirtualQuery, 整數型, "kernel32.dll", "VirtualQuery", , ""
.參數 lpAddress, 整數型, , "類型為通用型,請在調試時調整其類型"
.參數 lpBuffer, MEMORY_BASIC_INFORMATION, 傳址, ""
.參數 dwLength, 整數型, , ""
調用的DLL命令:
.DLL命令 進程偽句柄_, 整數型, , "GetCurrentProcess", 公開, 獲取當前進程的一個偽句柄 一般是-1
.DLL命令 打開令牌, 整數型, "advapi32.dll", "OpenProcessToken"
.參數 ProcessHandle, 整數型
.參數 DesiredAccess, 整數型
.參數 TokenHandle, 整數型, 傳址
.DLL命令 恢復權限, 邏輯型, "advapi32.dll", "LookupPrivilegeValueA"
.參數 lpSystemName, 文本型
.參數 lpName, 文本型
.參數 lpLuid, ID, 傳址
.DLL命令 獲取令牌特權, 邏輯型, "advapi32.dll", "AdjustTokenPrivileges"
.參數 TokenHandle, 整數型
.參數 DisableAllPrivileges, 整數型
.參數 NewState, 令牌特權, 傳址
.參數 BufferLength, 整數型
.參數 PreviousState, 令牌特權, 傳址
.參數 ReturnLength, 整數型, 傳址
.DLL命令 置進程優先級_, 邏輯型, , "SetPriorityClass", , 設置進程優先級別SetPriorityClass
.參數 進程句柄, 整數型, , 進程句柄hProcess
.參數 級別, 整數型, , 級別dwPriorityClass
易語言卷簾工具箱源碼,初始化卷簾,取星期,更換風格,搜索文件,線程搜索,修改底色,獲取信息,取信息記錄,取網絡信息...
易語言僅用核心支持庫實現對外部數據庫的操作ADODB操作外部數據庫例程源碼,根據村組查詢數據,數據庫_讀取數據到高級表格,數據庫_保存高級表格數據到數據庫,數據庫_讀取數據到列表...
易語言僅用核心支持庫實現對外部數據庫的操作ADODB操作外部數據庫例程源碼,根據村組查詢數據,數據庫_讀取數據到高級表格,數據庫_保存高級表格數據到數據庫,數據庫_讀取數據到列表...
易語言僅用核心支持庫實現對外部數據庫的操作ADODB操作外部數據庫例程源碼,根據村組查詢數據,數據庫_讀取數據到高級表格,數據庫_保存高級表格數據到數據庫,數據庫_讀取數據到列表...
易語言兩個文件內存中通訊源碼,子程序1,打開文件,生成空文件,生成重復字節文件,移到文件首,移到文件尾,移動讀寫位置,取讀寫位置,關閉文件,取文件長度,寫出字節集,是否在文件尾,取錯...
易語言易模塊管理器Include目錄源碼,CopyTo_CreateProcessDebugInfo,CopyTo_CreateThreadDebugInfo,CopyTo_ExitThreadDebugInfo,CopyTo_ExitProcessDebugInfo,CopyTo_LoadDllDebugInfo,CopyTo_UnloadDllDebugInfo,CopyTo_ExceptionDebugInfo,Copy...
易語言卷簾工具箱源碼,初始化卷簾,取星期,更換風格,搜索文件,線程搜索,修改底色,獲取信息,取信息記錄,取網絡信息...
子程序1,打開文件,生成空文件,生成重復字節文件,移到文件首,移到文件尾,移動讀寫位置,取讀寫位置,關閉文件,取文件長度,寫出字節集,是否在文件尾,取錯誤信息,讀入字節集,讀入2M字節集,清除文件緩沖區,讀入文本,寫出文本,寫文本行,讀入一行,插入字節集,取文件號...
初始化卷簾,取星期,更換風格,搜索文件,線程搜索,修改底色,獲取信息,取信息記錄,取網絡信息...