易语言资源网 - 做最全的易语言资源下载社区
【精易招聘】UniApp开发工程师 精易论坛授权登录

【易IDE视觉库 插件】小助手插件集成工具箱和皮肤预览   [复制链接]

    2021-09-13 10:17:11
    模块控件源码
    易语言资源网
    687 次浏览
    来源链接


关于皮肤预览功能,初版见这篇帖子,存在不少问题 【易IDE视觉库 插件】Skin#窗口设计预览插件及源码分享

优化皮肤箱功能(解决初版问题如下)

1、皮肤过多在菜单显示不友好问题(使用窗口代替,增加了皮肤文类)

2、补全皮肤功能功能

3、优化Hook功能,初版中Hook非常粗暴,干扰了IDE正常功能,会造成一些闪退的情况(文末会重点说一下这点的解决方式)

新增工具箱功能(需要注意以下几点)

1、乱七八糟的程序放到指定目录,文件夹分好类,然后启动插件后会自动遍历exe文件

2、对于扫描出来的一些乱七八糟的exe(如 set.exe up.exe等等)可以右键加入黑名单,一劳永逸

3、分类纯粹依靠文件夹名的排序,手动排序暂未实现,视觉库对于tree view的拖拽功能没有重绘,凑活用吧

技术探讨

下面说下如何能在一个进程中精准Hook指定模块(dll)对API的调用,

拿皮肤预览功能来说, 我只需要Hook Skin_EL.dll 对 IsMenu 和 EnumThreadWindows 的调用,这样便可以实现不干扰IDE正常功能,Hook类原理参考了OD,对ESP地址进行判断调用者所属模块(虽然实现了对调用者的判断,奈何不懂汇编,代码中蹩脚的几句汇编指令纯粹个人不成熟的想法,有懂汇编的大佬希望能不吝赐教是否有更好的办法),多说无益,详细实现方法见代码




插件安装方法


1、安装IDE视觉库

2、解压压缩包至易语言安装目录

3、放置皮肤文件至 易语言安装目录\assistant\skins

4、放置程序文件至 易语言安装目录\assistant\tools



点我下载 (已有 45 次下载)

引用模块


源码文件名 模块文件名
iDraw_Assistant.e
易IDE视觉库接口模块.ec


引用支持库


源码文件名 支持库文件名 支持库标识
iDraw_Assistant.e 系统核心支持库 5.7 d09f2340818511d396f6aaf844c7e325
扩展界面支持库一 2.0 27bb20fdd3e145e4bee3db39ddd6e64c
特殊功能支持库 3.1 A512548E76954B6E92C21055517615B0
数据结构支持库 2.0 0AFF5F28B2CB42ce906AA27D6E485457


[错误报告]   上一篇:图片抠图去背景透明去底...     下一篇:摩尔斯发报工具...