| 窗口程序集名 | 保 留 | 保 留 | 备 注 |
| 放大通用对话框 | |||
| 变量名 | 类 型 | 数组 | 备 注 |
| JmpCode | 整数型 | "2" |
| 子程序名 | 返回值类型 | 公开 | 备 注 | ||
| 放大通用对话框 | 修改易语言默认的通用对话框 | ||||
| 变量名 | 类 型 | 静态 | 数组 | 备 注 | ||
| hModule | 整数型 | |||||
| FuncAddress | 整数型 | "2" | ||||
| hHook | 整数型 | "2" | ||||
| HookFuncAddr | 整数型 | "2" | ||||
| OldProtect | 整数型 | |||||
HookFuncAddr [2] = 到整数 (&放大__GetSaveFileNameA)
hModule = 放大_GetModuleHandle (“comdlg32.dll”)
FuncAddress [1] = 放大_GetProcAddress (hModule, “GetOpenFileNameA”)
FuncAddress [2] = 放大_GetProcAddress (hModule, “GetSaveFileNameA”)
hHook [1] = 放大_VirtualAlloc (0, 14, 12288, 64)
hHook [2] = 放大_VirtualAlloc (0, 14, 12288, 64)
放大_RtlMoveMemory_1 (hHook [1], 到字节集 (FuncAddress [1]), 4)
放大_RtlMoveMemory_1 (hHook [2], 到字节集 (FuncAddress [2]), 4)
JmpCode [1] = hHook [1] + 4
JmpCode [2] = hHook [2] + 4
放大_RtlMoveMemory (JmpCode [1], FuncAddress [1], 5)
放大_RtlMoveMemory (JmpCode [2], FuncAddress [2], 5)
放大_RtlMoveMemory_1 (JmpCode [1] + 5, { 233 } + 到字节集 (到整数 (FuncAddress [1] + 5 - JmpCode [1] - 10)), 5)
放大_RtlMoveMemory_1 (JmpCode [2] + 5, { 233 } + 到字节集 (到整数 (FuncAddress [2] + 5 - JmpCode [2] - 10)), 5)
放大_VirtualProtect (FuncAddress [1], 5, 64, OldProtect)
放大_RtlMoveMemory_1 (FuncAddress [1], { 233 } + 到字节集 (到整数 (HookFuncAddr [1] - FuncAddress [1] - 5)), 5)
放大_VirtualProtect (FuncAddress [1], 5, OldProtect, 0)
放大_VirtualProtect (FuncAddress [2], 5, 64, OldProtect)
放大_RtlMoveMemory_1 (FuncAddress [2], { 233 } + 到字节集 (到整数 (HookFuncAddr [2] - FuncAddress [2] - 5)), 5)
放大_VirtualProtect (FuncAddress [2], 5, OldProtect, 0)
| 子程序名 | 返回值类型 | 公开 | 备 注 | ||||
| 放大__GetOpenFileNameA | 整数型 | ||||||
| 参数名 | 类 型 | 参考 | 可空 | 数组 | 备 注 | ||
| lpofn | 整数型 | ||||||
返回 (放大_Jmp (JmpCode [1], lpofn))
| 子程序名 | 返回值类型 | 公开 | 备 注 | ||||
| 放大__GetSaveFileNameA | 整数型 | ||||||
| 参数名 | 类 型 | 参考 | 可空 | 数组 | 备 注 | ||
| lpofn | 整数型 | ||||||
返回 (放大_Jmp (JmpCode [2], lpofn))
| 子程序名 | 返回值类型 | 公开 | 备 注 | ||||
| 放大_处理OFN | |||||||
| 参数名 | 类 型 | 参考 | 可空 | 数组 | 备 注 | ||
| lpofn | 整数型 | ||||||
| 子程序名 | 返回值类型 | 公开 | 备 注 | ||||
| 放大_Jmp | 整数型 | ||||||
| 参数名 | 类 型 | 参考 | 可空 | 数组 | 备 注 | ||
| 地址 | 整数型 | 参数 | 整数型 | ||||
返回 (0)
| 子程序名 | 返回值类型 | 公开 | 备 注 | ||||
| 放大_指针到整数 | 整数型 | ||||||
| 参数名 | 类 型 | 参考 | 可空 | 数组 | 备 注 | ||
| 指针 | 整数型 | ||||||
| 变量名 | 类 型 | 静态 | 数组 | 备 注 | ||
| JmpCode | 整数型 | "2" | ||||
返回 (0)
| DLL命令名 | 返回值类型 | 公开 | 备 注 | |
| 放大_GetModuleHandle | 整数型 | 获取一个应用程序或动态链接库的模块句柄 如执行成功成功,则返回模块句柄。零表示失败。会设置GetLastError | ||
| DLL库文件名: | ||||
| kernel32 | ||||
| 在DLL库中对应命令名: | ||||
| GetModuleHandleA | ||||
| 参数名 | 类 型 | 传址 | 数组 | 备 注 |
| lpModuleName | 文本型 | 指定模块名,这通常是与模块的文件名相同的一个名字。例如,NOTEPAD.EXE程序的模块文件名就叫作NOTEPAD; | ||
| DLL命令名 | 返回值类型 | 公开 | 备 注 | |
| 放大_GetProcAddress | 整数型 | 返回函数地址 | ||
| DLL库文件名: | ||||
| kernel32 | ||||
| 在DLL库中对应命令名: | ||||
| GetProcAddress | ||||
| 参数名 | 类 型 | 传址 | 数组 | 备 注 |
| hModule | 整数型 | |||
| lpProcName | 文本型 | |||
| DLL命令名 | 返回值类型 | 公开 | 备 注 | |
| 放大_VirtualAlloc | 整数型 | 保留虚拟页 | ||
| DLL库文件名: | ||||
| kernel32 | ||||
| 在DLL库中对应命令名: | ||||
| VirtualAlloc | ||||
| 参数名 | 类 型 | 传址 | 数组 | 备 注 |
| lpAddress | 整数型 | |||
| dwSize | 整数型 | |||
| flAllocationType | 整数型 | |||
| flProtect | 整数型 | |||
| DLL命令名 | 返回值类型 | 公开 | 备 注 | |
| 放大_RtlMoveMemory_1 | ||||
| DLL库文件名: | ||||
| kernel32.dll | ||||
| 在DLL库中对应命令名: | ||||
| RtlMoveMemory | ||||
| 参数名 | 类 型 | 传址 | 数组 | 备 注 |
| Destination | 整数型 | |||
| Source | 字节集 | |||
| Length | 整数型 | |||
| DLL命令名 | 返回值类型 | 公开 | 备 注 | |
| 放大_RtlMoveMemory | ||||
| DLL库文件名: | ||||
| kernel32.dll | ||||
| 在DLL库中对应命令名: | ||||
| RtlMoveMemory | ||||
| 参数名 | 类 型 | 传址 | 数组 | 备 注 |
| Destination | 整数型 | |||
| Source | 整数型 | |||
| Length | 整数型 | |||
| DLL命令名 | 返回值类型 | 公开 | 备 注 | |
| 放大_VirtualProtect | 整数型 | |||
| DLL库文件名: | ||||
| kernel32.dll | ||||
| 在DLL库中对应命令名: | ||||
| VirtualProtect | ||||
| 参数名 | 类 型 | 传址 | 数组 | 备 注 |
| lpAddress | 整数型 | |||
| dwSize | 整数型 | |||
| flNewProtect | 整数型 | |||
| lpflOldProtect | 整数型 | |||
词条作者信息 使用例程
