ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[分享] 用winrar将Excel封装成exe

[复制链接]

TA的精华主题

TA的得分主题

发表于 2011-5-3 17:26 | 显示全部楼层
楼主的想法也许可以这样应用,设计好execl表格,然后将里面所生成和得出的数据保存至acc数据库,execl表格vba设计只为录入数据和调出数据用。这样估计出错的几率就不会太大了,数据更新问题就好解决了。数据库可以单独加密或者设置成mde格式。这个压缩包里也可以加一个脚本程序,解压后先运行脚本程序跳过execl的宏提示直接打开有宏的表格,这样就更像.exe文件了。这个是本论坛上网友做的一个,楼主看看有没有帮助 RunMacro.rar (417 Bytes, 下载次数: 65) ,解压后和表格一起创建自解压文件,然后设置RunMacro.vbs为解压后运行程序。
将vba封装成dll无疑是最好的保密方法,但是封装调试过程太过麻烦。现在也没弄太好。个人觉得用win加密也可以算是一个高效率加密的方式吧。毕竟平时做的一些代码只是为了使用方便而不是为了发行上市,所以个人感觉写代码的好手不一定都得死扣封装dll,有一些简单的方式可以尽可能的保护我们的vba还是值得研究一下的。
至少我现在是没耐心做dll了,在论坛里学了半年还是一头雾水啊,学vba才用了不到半年就以做够应付我平日的需要了,论坛里也发过一个比较实用的财务报表系统,里面也涉及到了用win创建自解压文件以方便使用,不过那会还没看到楼主的帖子呢,楼主的思路比我的更好,学习了
希望楼主能设计出更好的作品。

[ 本帖最后由 toad13 于 2011-5-3 17:39 编辑 ]

TA的精华主题

TA的得分主题

 楼主| 发表于 2011-5-3 18:29 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
被人一说我也没心思弄了
这种形式本来就类似于"寄居蟹",就这种形式。这样做至少能使得Excel得到某些情况下的安全
在这种模式下,winrar的参数设置才是问题的关键,讨论别的似乎意义不大
通过弄这个,我也学习了些rar的 <命令> -<开关> ,目前已基本解决了所有能发现的问题
一楼附件中的" a -m1 -sfx  "这句代码其实是远远不够的,也是很差的
欢迎有兴趣者继续讨论winrar参数问题
我现在的语句是"a  -m0 -sfx -zd:\tmp\1\1.txt d:\tmp\1\1.exe d:\tmp\1"
欢迎winrar高手指正

TA的精华主题

TA的得分主题

 楼主| 发表于 2011-5-3 18:40 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
原帖由 余瑞龙 于 2011-5-3 08:38 发表
楼主:
       我测试了你一楼的第二个附件,没有出错,但你所要求输入的密码不起作用,在第二次再打开文件时仍然不需要输入密码。
    还有一个问题我不明白,用 WinRar 将".xls"打包成".exe" 有什么作用呢,你还是要 ...

大有意义
至少主人不在时,没人能进得了房门

TA的精华主题

TA的得分主题

 楼主| 发表于 2011-5-3 19:01 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
裸露于硬盘的Excel、access等,应该说毫无秘密可言,但裸露的这种exe安全性就大大提高了

再换个思路,如果access装入这种exe用VB调用(如果再施以随机释放access),access的安全性就能够得到极大的提高

[ 本帖最后由 HHAAMM 于 2011-5-3 19:04 编辑 ]

TA的精华主题

TA的得分主题

发表于 2011-5-3 19:06 | 显示全部楼层
我很菜,有点不明白,要是属于隐私的问题可以用文件保险箱呀,难倒哪样不安全吗?

TA的精华主题

TA的得分主题

发表于 2011-5-3 19:36 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
学习了,有参考价值

TA的精华主题

TA的得分主题

发表于 2011-5-3 19:45 | 显示全部楼层
原帖由 HHAAMM 于 2011-5-3 18:29 发表
我现在的语句是"a  -m0 -sfx -zd:\tmp\1\1.txt d:\tmp\1\1.exe d:\tmp\1"

版主更新了代码,怎么没见新的附件啊?

TA的精华主题

TA的得分主题

 楼主| 发表于 2011-5-3 21:23 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
原帖由 余瑞龙 于 2011-5-3 08:38 发表
楼主:
       我测试了你一楼的第二个附件,没有出错,但你所要求输入的密码不起作用,在第二次再打开文件时仍然不需要输入密码。
    还有一个问题我不明白,用 WinRar 将".xls"打包成".exe" 有什么作用呢,你还是要 ...

"密码不起作用"
附件中我用错了命令
-p[密码] 这个是不对的 应该是 -hp[密码]      加密文件数据和标头
惭愧 winrar命令接触不久

TA的精华主题

TA的得分主题

 楼主| 发表于 2011-5-3 21:26 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
p = Application.InputBox("...
        If p <> "" And p <> False Then mima = "-p" & p
        Set o = CreateObject("wscript.shell")
        Rarexe = o.Regread("HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\App Paths\winrar.EXE\Path") _
        & "\rar.exe "
        Source = ThisWorkbook.Path & "\test.xls"
        Target = ThisWorkbook.Path & "\test.rar"
        FileString = Rarexe & " a -ep " & mima & " -m1 -sfx  """ & Target & """   """ & Source & """"
红色部分错了

TA的精华主题

TA的得分主题

 楼主| 发表于 2011-5-3 21:32 | 显示全部楼层
rar <命令> -<开关 1> -<开关 N> <档案文件> <文件...>
               <@列表文件...> <释放路径\>

<命令>
  a             添加文件到档案文件中
  c             添加档案文件注释
  cf            添加文件注释
  ch            改变档案文件参数
  cw            将档案文件注释写到文件中
  d             从档案文件中删除文件
  e             释放文件到当前目录
  f             刷新档案文件内的文件
  i[参数]=<字符串>  在档案文件内查找字符串
  k             锁定档案文件
  l[t,b]        列表档案文件 [技术支持信息, 梗概信息]
  m[f]          移动到档案文件 [仅文件]
  p             打印文件到标准输出设备
  r             修复档案文件
  rc            重建丢失的卷
  rn            重命名已归档的文件
  rr[N]         添加数据恢复记录
  rv[N]         创建恢复卷
  s[模块名|-]     转换档案文件为自释放格式
  t             测试档案文件
  u             更新档案文件内的文件
  v[t,b]        列表档案文件详细资料 [技术支持信息, 梗概信息]
  x             以完整路径释放文件

<开关>
  -             停止开关扫描
  ac            压缩或释放后清除「存档」属性
  ad            追加档案文件名到目标路径
  ag[格式]      使用当前日期做为档案文件名
  ao            添加带有「存档」属性的文件
  ap<路径>      设置档案文件内部路径
  as            同步档案文件内容
  av            设置用户身份校验 (仅用于注册版)
  av-           禁止用户身份校验检查
  c-            禁止注释显示
  cfg-          禁止读取配置
  cl            转换名字为小写字母
  cu            转换名字为大写字母
  df            归档后删除来源文件
  dh            打开共享文件
  ds            禁止固定档案文件的名称排序
  e[+]<属性>    设定文件排除和包含属性
  ed            不添加空目录
  en            不要放置 '档案文件末尾' 块
  ep            排除路径
  ep1           排除基准目录
  ep2           扩充为完整路径
  ep3           展开包含驱动器字母的完整路径
  f             刷新文件
  hp[密码]      加密文件数据和标头
  id[c,d,p,q]   禁止讯息
  ieml[地址]    通过电子邮件发送档案文件
  ierr          发送所有讯息至标准错误输出设备
  ilog[文件名]  记录错误讯息到文件 (只在注册版中可用)
  inul          禁止所有讯息
  ioff          完成操作后关闭计算机
  isnd          允许声音提示
  k             锁定档案文件
  kb            保留损坏的文件
  m<0..5>       设置压缩等级 (0-存储...3-默认...5-最大)
  mc<参数>      设置高级压缩参数
  md<大小>      以 KB 为单位的字典大小 (64,128,256,512,1024,2048,4096 或 A-G)
  ms[扩展名;扩展名]   指定要保存的文件类型
  mt<线程数>   设定线程数目
  n<文件>       只包含指定的文件
  n@            从标准输入设备读取要包含的文件名
  n@<列表>      包含指定列表文件中的文件
  o+            覆盖已存在的文件
  o-            不覆盖已存在的文件
  oc            置值 NTFS 压缩属性
  or            自动重命名文件
  os            保存 NTFS 数据流
  ow            保存或还原所有者和组
  p[口令]       设置口令
  p-            不询问口令
  r             包含所有子目录
  r0            只包含与通配符匹配的所有子目录
  ri<P>[:<S>]   设置优先级 (0-默认,1-低..15-高) 及以毫秒为单位的睡眠停顿时间
  rr[N]         添加数据恢复记录
  rv[N]         创建恢复卷
  s[<N>,v[-],e] 创建固定格式档案文件
  s-            禁止创建固定格式档案文件
  sc<字符集>[目标]  指定字符集
  sfx[模块名]     创建自释放档案文件
  si[名字]      从标准输入设备 (stdin) 读取数据
  sl<大小>      处理小于指定大小的文件
  sm<大小>      处理大于指定大小的文件
  t             归档后测试文件
  ta<日期>      处理在 YYYYMMDDHHMMSS 格式中 <指定日期> 后修改的文件
  tb<日期>      处理在 YYYYMMDDHHMMSS 格式中 <指定日期> 前修改的文件
  tk            保持原有的档案文件时间
  tl            将档案文件时间设为最新文件的时间
  tn<时间>      处理比 <指定时间> 更新的文件
  to<时间>      处理比 <指定时间> 旧的文件
  ts<m,c,a>[N]  保存或恢复文件时间属性 (修改、创建及访问时间)
  u             更新文件
  v             创建分卷压缩时自动检测大小或列出所有的分卷
  v<大小>[k,b]  创建分卷, 分卷大小 = <大小> * 1000 [*1024, *1]
  vd            创建分卷前先清除磁盘内容
  ver[n]        文件版本控制
  vn            使用旧样式的卷命名方案
  vp            在每个分卷压缩前暂停
  w<路径>       指定工作目录
  x<文件>       排除指定的文件
  x@            从标准输入设备读取要排除的文件名
  x@<列表>      排除指定列表文件中的文件
  y             所有的询问都回答是
  z[文件]       从档案文件读取注释内容
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-12-23 10:57 , Processed in 0.039648 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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