设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 2892|回复: 5
打印 上一主题 下一主题

[求助]VBA有没有真正将代码隐藏起来的方法,就好象VB生成EXE一样

[复制链接]
跳转到指定楼层
1#
发表于 2006-10-18 14:47:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
VBA有没有真正将代码隐藏起来的方法,就好象VB生成EXE一样,不显示代码运行.
显示代码,应该说任何加密都是无效的,真得没有真正好的方法吗?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2006-10-19 03:39:00 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
3#
发表于 2006-12-21 05:21:00 | 只看该作者
可以试一试下面这一段,进行加密,但不能生成.exe文件。如不行请回复!

Sub SetProtect()
  Dim FileName As String
  FileName = Application.GetOpenFilename("Excel文件(*.xls & *.xla),*.xls;*.xla", , "VBA")
  If FileName = CStr(False) Then
     Exit Sub
  Else
     VBAPassword FileName, True
  End If
End Sub

Private Function VBAPassword(FileName As String, Optional Protect As Boolean = False)
    If Dir(FileName) = "" Then
       Exit Function
    Else
       FileCopy FileName, FileName & ".bak"
    End If

    Dim GetData As String * 5
    Open FileName For Binary As #1
    Dim CMGs As Long
    Dim DPBo As Long
    For i = 1 To LOF(1)
        Get #1, i, GetData
        If GetData = "CMG=""" Then CMGs = i
        If GetData = "[Host" Then DPBo = i - 2: Exit For
    Next
     
        
    If Protect = False Then
       Dim St As String * 2
       Dim s20 As String * 1
      
       Get #1, CMGs - 2, St
     
      
       Get #1, DPBo + 16, s20
     
      
       For i = CMGs To DPBo Step 2
           Put #1, i, St
       Next
        
        Dim MMs As String * 5
       MMs = "DPB="""
       Put #1, CMGs, MMs
       MsgBox "加密成功......", 32, "系统提示"
    End If
    Close #1
End Function
4#
发表于 2006-12-21 05:25:00 | 只看该作者
或者可以把代码复制到vb中,然后再编译成exe文件,vb和vba的代码大部分是相同的,试试看行不行?

5#
发表于 2006-12-27 02:39:00 | 只看该作者
学习下
6#
发表于 2007-2-1 07:06:00 | 只看该作者
以下是引用qqqqqqwwwwww在2006-12-20 21:21:00的发言:


可以试一试下面这一段,进行加密,但不能生成.exe文件。如不行请回复!

Sub SetProtect()
  Dim FileName As String
  FileName = Application.GetOpenFilename("Excel文件(*.xls & *.xla),*.xls;*.xla", , "VBA")
  If FileName = CStr(False) Then
     Exit Sub
  Else
     VBAPassword FileName, True
  End If
End Sub

Private Function VBAPassword(FileName As String, Optional Protect As Boolean = False)
    If Dir(FileName) = "" Then
       Exit Function
    Else
       FileCopy FileName, FileName & ".bak"
    End If

    Dim GetData As String * 5
    Open FileName For Binary As #1
    Dim CMGs As Long
    Dim DPBo As Long
    For i = 1 To LOF(1)
        Get #1, i, GetData
        If GetData = "CMG=""" Then CMGs = i
        If GetData = "[Host" Then DPBo = i - 2: Exit For
    Next
     
        
    If Protect = False Then
       Dim St As String * 2
       Dim s20 As String * 1
      
       Get #1, CMGs - 2, St
     
      
       Get #1, DPBo + 16, s20
     
      
       For i = CMGs To DPBo Step 2
           Put #1, i, St
       Next
        
        Dim MMs As String * 5
       MMs = "DPB="""
       Put #1, CMGs, MMs
       MsgBox "加密成功......", 32, "系统提示"
    End If
    Close #1
End Function

我试了一下好像不行.
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-6-8 18:22 , Processed in 0.094632 second(s), 30 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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