动态添加菜单动态加载dll源码
系统结构:新窗口程序,取窗口特征,执行窗口程序,取菜单条句柄,取子菜单句柄,置窗口特征,取系统菜单,添加菜单项,取菜单项目ID,取当前进程,删除菜单项目,载入动态链接库_,取进程地址_,释放动态链接库_,取菜单标题,子程序_信息框,子程序_输入框,子程序_取插件信息,子程序_添加插件菜单,消息过程,子程序_找菜单在数组中的位置,DLL_取菜单条句柄,DLL_添加菜单项,DLL_取子菜单句柄,DLL_设置窗口信息,DLL_取菜单标题,DLL_删除菜单项目,DLL_呼叫窗口函数地址,DLL_空命令调用,
======窗口程序集1
| |
| |------ __启动窗口_创建完毕
| |
| |------ 新窗口程序
| |
| |
======调用的Dll
| |
| |---[dll]------ 取窗口特征
| |
| |---[dll]------ 执行窗口程序
| |
| |---[dll]------ 取菜单条句柄
| |
| |---[dll]------ 取子菜单句柄
| |
| |---[dll]------ 置窗口特征
| |
| |---[dll]------ 取系统菜单
| |
| |---[dll]------ 添加菜单项
| |
| |---[dll]------ 取菜单项目ID
| |
| |---[dll]------ 取当前进程
| |
| |---[dll]------ 删除菜单项目
| |
| |---[dll]------ 载入动态链接库_
| |
| |---[dll]------ 取进程地址_
| |
| |---[dll]------ 释放动态链接库_
| |
| |---[dll]------ 取菜单标题
======程序集1
| |
| |------ _启动子程序
| |
| |------ _临时子程序
| |
| |------ 子程序_信息框
| |
| |------ 子程序_输入框
======窗口程序集1
| |
| |------ __启动窗口_创建完毕
| |
| |------ 子程序_取插件信息
| |
| |------ 子程序_添加插件菜单
| |
| |------ 消息过程
| |
| |------ 子程序_找菜单在数组中的位置
| |
| |------ __启动窗口_将被销毁
| |
| |
======调用的Dll
| |
| |---[dll]------ DLL_取菜单条句柄
| |
| |---[dll]------ DLL_添加菜单项
| |
| |---[dll]------ DLL_取子菜单句柄
| |
| |---[dll]------ DLL_设置窗口信息
| |
| |---[dll]------ DLL_取菜单标题
| |
| |---[dll]------ DLL_删除菜单项目
| |
| |---[dll]------ DLL_呼叫窗口函数地址
| |
| |---[dll]------ DLL_空命令调用
调用的DLL命令:
.DLL命令 取窗口特征, 子程序指针, , "GetWindowLongA"
.参数 窗口句柄, 整数型
.参数 要取的特征, 整数型
.DLL命令 执行窗口程序, 整数型, , "CallWindowProcA"
.参数 程序指针, 子程序指针
.参数 窗口句柄, 整数型
.参数 消息, 整数型
.参数 参数1, 整数型
.参数 参数2, 整数型
.DLL命令 取菜单条句柄, 整数型, , "GetMenu", , 取指定窗口的菜单条句柄
.参数 窗口句柄, 整数型
.DLL命令 取子菜单句柄, 整数型, , "GetSubMenu"
.参数 菜单句柄, 整数型
.参数 位置, 整数型
.DLL命令 置窗口特征, 子程序指针, , "SetWindowLongA"
.参数 窗口句柄, 整数型
.参数 要置的特征, 整数型
.参数 新特征, 子程序指针, , 仅易语言3.0支持
.DLL命令 取系统菜单, 整数型, , "GetSystemMenu"
.参数 窗口句柄, 整数型
.参数 取原始菜单, 逻辑型
.DLL命令 添加菜单项, 逻辑型, , "InsertMenuA"
.参数 菜单句柄, 整数型
.参数 位置, 整数型
.参数 标志, 整数型
.参数 ID, 整数型
.参数 标题, 文本型
.DLL命令 取菜单项目ID, 整数型, , "GetMenuItemID"
.参数 菜单句柄, 整数型
.参数 位置, 整数型
.DLL命令 取当前进程, 整数型, , "GetCurrentProcess"
.DLL命令 删除菜单项目, 逻辑型, , "RemoveMenu"
.参数 菜单句柄, 整数型
.参数 位置, 整数型
.参数 标志, 整数型
.DLL命令 载入动态链接库_, 整数型, , "LoadLibraryA", , 载入指定的动态链接库,并将它映射到当前进程使用的地址空间
.参数 动态链接库名称, 文本型, , lpLibFileName,指定要载入的动态链接库的名称
.DLL命令 取进程地址_, 整数型, , "GetProcAddress"
.参数 模块句柄, 整数型, , hModule
.参数 进程名称, 文本型, , lpProcName
.DLL命令 释放动态链接库_, 整数型, , "FreeLibrary", , 释放指定的动态链接库,它们早先是用LoadLibrary ;API函数装载的 非零表示成功,零表示失败。会设置GetLastError
.参数 动态链接库ID, 整数型
.DLL命令 取菜单标题, 文本型, , "GetMenuStringA"
.参数 菜单句柄, 整数型
.参数 位置, 整数型
.参数 名称, 文本型
.参数 缓冲区, 整数型
.参数 标志, 整数型
调用的DLL命令:
.DLL命令 DLL_取菜单条句柄, 整数型, , "GetMenu", , 取指定窗口的菜单条句柄
.参数 窗口句柄, 整数型
.DLL命令 DLL_添加菜单项, 逻辑型, , "InsertMenuA"
.参数 菜单句柄, 整数型
.参数 位置, 整数型
.参数 标志, 整数型
.参数 ID, 整数型
.参数 标题, 文本型
.DLL命令 DLL_取子菜单句柄, 整数型, , "GetSubMenu"
.参数 菜单句柄, 整数型
.参数 位置, 整数型
.DLL命令 DLL_设置窗口信息, 整数型, "user32", "SetWindowLongA", , 在窗口结构中为指定的窗口设置信息 指定数据的前一个值
.参数 窗口句柄, 整数型, , hwnd,欲为其取得信息的窗口的句柄
.参数 窗口信息值, 整数型, , nIndex,请参考GetWindowLong函数的nIndex参数的说明
.参数 窗口信息新值, 整数型, , dwNewLong,由nIndex指定的窗口信息的新值
.DLL命令 DLL_取菜单标题, 文本型, , "GetMenuStringA"
.参数 菜单句柄, 整数型
.参数 位置, 整数型
.参数 名称, 文本型
.参数 缓冲区, 整数型
.参数 标志, 整数型
.DLL命令 DLL_删除菜单项目, 逻辑型, , "RemoveMenu"
.参数 菜单句柄, 整数型
.参数 位置, 整数型
.参数 标志, 整数型
.DLL命令 DLL_呼叫窗口函数地址, 整数型, "user32.dll", "CallWindowProcA"
.参数 前一窗口函数地址, 整数型
.参数 窗口句柄, 整数型
.参数 消息值, 整数型
.参数 附加参数1, 整数型
.参数 附加参数2, 整数型
.DLL命令 DLL_空命令调用, , , , , 此空命令用于"DLL命令调用转向"后
注:本站源码主要来源于网络收集。如有侵犯您的利益,请联系我们,我们将及时删除!
部分源码可能含有危险代码,(如关机、格式化磁盘等),请看清代码在运行。
由此产生的一切后果本站均不负责。源码仅用于学习使用,如需运用到商业场景请咨询原作者。
使用本站源码开发的产品均与本站无任何关系,请大家遵守国家相关法律。