ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[分享]用U盘做加密狗,加密Excel文件(108楼有新代码!)

  [复制链接]

TA的精华主题

TA的得分主题

发表于 2009-8-14 23:49 | 显示全部楼层
本帖已被收录到知识树中,索引项:保护和加密编程
原帖由 Zamyi 于 2008-9-6 22:56 发表
gvntw版主和我都做得不细,忘记释放内在变量,我的代码更为:Private Sub Workbook_Open()  Dim fs, d, s$  On Error Resume Next  For i = 3 To 26    Set fs = CreateObject("Scrip ...

楼主还少写一了一个:应该写成:
Private Sub Workbook_Open()
  Dim fs, d, s$
  On Error Resume Next
  For i = 3 To 26
    Set fs = CreateObject("Scripting.FileSystemObject")
    Set d = fs.GetDrive(Chr(64 + i) & ":")
    s = d.serialnumber
    Select Case s
      Case "1260461834"  'U盘序列号
        Set fs = Nothing
        Set d = Nothing
        MsgBox "找到U盘,测试成功。"
      End Select
    Set fs = Nothing
    Set d = Nothing
    s = ""
  Next i
  
ThisWorkbook.Close False
End Sub

不加S=""会重复出现"找到U盘,测试成功。",电脑上有多少个盘就会重复多少次。

TA的精华主题

TA的得分主题

发表于 2009-8-15 00:16 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
原帖由 lhm667788 于 2008-9-9 23:48 发表
测试完全通过!Private Sub Workbook_Open()On Error Resume NextSet fs = CreateObject("Scripting.FileSystemObject")    StrDrive = "B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z" & ...

谢谢楼主,按前几楼的说话改了下:
Private Sub Workbook_Open()
Dim fs, d, s$
Dim SerBoolean As Boolean
SerBoolean = False' 判断是否有指定的U盘
On Error Resume Next
Set fs = CreateObject("Scripting.FileSystemObject")
    StrDrive = "B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z"
    StrDriveArray = Split(StrDrive, ",")
    For StartPos = 1 To UBound(StrDriveArray)
        Set d = fs.GetDrive(fs.GetDriveName(fs.GetAbsolutePathName(StrDriveArray(StartPos) & ":\\")))
        If d.DriveType = 1 Then
            s = d.serialnumber
               Select Case s
                   Case "1260461834"  'U盘序列号
                       SerBoolean = True
                       Set fs = Nothing
                       Set d = Nothing
                       s = ""
               End Select
                       Set fs = Nothing
                       Set d = Nothing
        End If
    Next
    If SerBoolean Then
        MsgBox "找到U盘,测试成功。"
        Else
        
        MsgBox "没有找到U盘加密狗,程序将退出。"
        ThisWorkbook.Close False
    End If
End Sub
这样会更合理。

TA的精华主题

TA的得分主题

发表于 2009-8-22 18:30 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2009-9-9 16:33 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2009-9-10 00:29 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
记号一下。

TA的精华主题

TA的得分主题

发表于 2009-9-12 00:52 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
非常经典,谢谢!!!!!

TA的精华主题

TA的得分主题

发表于 2009-9-18 22:16 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
好东西,收藏先,谢谢分享

TA的精华主题

TA的得分主题

发表于 2009-10-11 03:02 | 显示全部楼层
佩服,收藏了。。。。。。。。。。。。。

TA的精华主题

TA的得分主题

发表于 2009-10-14 23:07 | 显示全部楼层
我先加入,占个位。这里的贴子很宝贵。。呵呵,抓紧时间学习

TA的精华主题

TA的得分主题

发表于 2009-10-21 11:49 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
留个脚印以后来看。
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-17 02:31 , Processed in 0.042873 second(s), 5 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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