ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
楼主: baomaboy

[原创] COM加载宏封装自定义函数并全自动安装最简实例

  [复制链接]

TA的精华主题

TA的得分主题

 楼主| 发表于 2011-5-27 13:42 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册

回复 102楼 zhj1978 的帖子

本帖已被收录到知识树中,索引项:插件开发
那是个api在顶部声明一下就行了,或者你把它删掉也没影响,那句的作用只是设置窗口的位置。完全可以不用的。
删掉那一句或者补上这一句都可以:
  1. Public Declare Sub SetWindowPos Lib "User32 " (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal X As Long, ByVal Y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long)
复制代码

[ 本帖最后由 baomaboy 于 2011-5-27 13:45 编辑 ]

TA的精华主题

TA的得分主题

发表于 2011-5-27 14:02 | 显示全部楼层
好资料。谢

TA的精华主题

TA的得分主题

发表于 2011-5-27 15:05 | 显示全部楼层
原帖由 baomaboy 于 2011-5-27 08:08 发表

还需要继续完善,因为用你这个注册下面两个附件都出现了同样的错误,每次都是,如图:
不过这也验证了我的猜测,你这个附件就是用20楼的api注册dll,然后在在看错误来源是后台创建CreateObject("Excel.Applicatio ...


注册出现崩溃???请提供出现崩溃的附件。我看看

TA的精华主题

TA的得分主题

发表于 2011-5-27 15:18 | 显示全部楼层
原帖由 baomaboy 于 2011-5-26 22:58 发表


1.其实在哪公布源码无所谓,我不是一直在说吗,要自己想公布时才公布,不想公布时在哪个帖子都不要公布。希望没人在迫你公布了。
2.(其删除加载宏列表中的项目很是完美)倒是这个对我来说已经不用在研究了,对于 ...



楼主的附件真厉害!杀毒软件报毒!!  你说你的程序能删加载宏列表项目还能删文件,你的Install.exe可以将该项功能加上去嘛。

[ 本帖最后由 fecmen 于 2011-5-27 15:29 编辑 ]

TA的精华主题

TA的得分主题

 楼主| 发表于 2011-5-27 15:39 | 显示全部楼层

回复 106楼 fecmen 的帖子

dll能、exe当让也能、就连vbs都能,我的install其实已经具备了那个功能了啊,卸载就是那个功能,但是只判断文件名及类名为默认dll时才卸载才删除,我总不能弄个卸载功能把人家电脑上所有加载项都删了啊,那不是找骂吗?dll提供这个功能是为用户有所需要时准备的,比如找不到被强制安装或者知道在哪卸载时,用这个功能可以一次性卸载所有插件。一般情况下你解压出来在扫描就不会报毒了,不会你也用的360吧?
删除dll的exe版:

[ 本帖最后由 baomaboy 于 2011-5-27 15:51 编辑 ]

install_deldll.rar

6.19 KB, 下载次数: 108

TA的精华主题

TA的得分主题

发表于 2011-5-27 15:53 | 显示全部楼层
原帖由 baomaboy 于 2011-5-27 15:39 发表
dll能、exe当让也能、就连vbs都能,我的install其实已经具备了那个功能了啊,卸载就是那个功能,但是只判断文件名及类名为默认dll时才卸载才删除,我总不能弄个卸载功能把人家电脑上所有加载项都删了啊,那不是找骂吗 ...



楼主的Install没有删掉加载宏列表中的项目啊。可以不删文件删掉加载宏列表中的项目,加载宏列表框中的“工程试验”不就是卸载后留下的遗留物吗?按说卸载后应该删掉的,目前只能手动单击删除。
截图.JPG

TA的精华主题

TA的得分主题

发表于 2011-5-27 16:13 | 显示全部楼层
原帖由 zhj1978 于 2011-5-27 10:49 发表
baomaboy已经在83楼公布VB代码,请fecmen 也公布,遵守承诺



拜托,别老是盯着我啦!你先说服楼主将Install中的代码都公开吧。他里面的含金量较高。

TA的精华主题

TA的得分主题

 楼主| 发表于 2011-5-27 16:30 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
原帖由 fecmen 于 2011-5-27 15:53 发表
楼主的Install没有删掉加载宏列表中的项目啊。可以不删文件删掉加载宏列表中的项目,加载宏列表框中的“工程试验”不就是卸载后留下的遗留物吗?按说卸载后应该删掉的,目前只能手动单击删除。

如果你相信那个附件无毒的话,用那个附件里的功能试试吧,环境不同我也不知道具体原因,只能给你个截图看看。
注意看那个GCSY.DLL文件,可不是我用鼠标拖走的,是凭空消失的,还有加载宏列表的增减清空状态变化。

[ 本帖最后由 baomaboy 于 2011-5-27 16:36 编辑 ]
deldll.gif

TA的精华主题

TA的得分主题

发表于 2011-5-27 16:40 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
原帖由 baomaboy 于 2011-5-27 16:30 发表

如果你相信那个附件无毒的话,用那个附件里的功能试试吧,环境不同我也不知道具体原因,只能给你个截图看看。
注意看那个GCSY.DLL文件,可不是我用鼠标拖走的,是凭空消失的,还有加载宏列表的增减清空状态变化。


我试用了下,除了系统自带的加载宏项目外的确能够删除加载宏列表框中的项目,只是运行速度很慢,还未运行完,那会功夫我还能打开几个Excel文件,之后打开的Excel文件自动关闭了,这才知道程序是在告诉我“我还没工作完毕呢”,建议在执行效率上改进下,其他很好啦!

TA的精华主题

TA的得分主题

 楼主| 发表于 2011-5-27 16:59 | 显示全部楼层

回复 111楼 fecmen 的帖子

效率低主要还是由于使用regsvr32 /u 造成的,你用过这命令,他本身执行完成的话就有半秒的延迟,而我遍历所有的加载项,我试过多次如果/u后立刻kill file经常会出错,所以我在循环里加入了Sleep ,等待每一个regsvr /u 结束,循环中加入Sleep你说效率能高吗?除非找到替换regsvr的方法,这不是正好你提供了api的方法吗,还没测试注册及注销的速度。如果和regsvr的一样那效率还是无法突破。下面附件是仿照你64楼附件做的,注册抛弃了regsvr32,用你提供的api函数,不过添加到加载宏列表还是用的后台创建excle对象的方法,如果也可以用api实现就完美了。

regdll_api.rar

6.99 KB, 下载次数: 114

您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-12-23 14:01 , Processed in 0.036661 second(s), 8 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表