|
本帖最后由 爱疯 于 2011-10-14 21:34 编辑 <br /><br /><P><FONT style="BACKGROUND-COLOR: #ffff00" color=#ff0000 size=4>因为U盘的物理序列号是唯一的,利用U盘做密钥盘,经常应用在一些商用应用程序中,达到保密和保护知识产权的目的. 在Excel平台上开发的系统也可以利用U盘的序列号进行加密.</FONT></P>
<P>以下附件中的代码,在VBE中的视图中打开本地窗口,按F8单步执行,通过窗口变量可看到你的U盘的物理序列号,修改代码中的序列号后,再去掉代码 <FONT color=#ff0000>‘ </FONT><STRONG><FONT color=#ff0000>ThisWorkbook.Close False</FONT></STRONG><FONT color=#000000>前面的注释符 </FONT><FONT color=#ff0000>‘ </FONT></P>
<P>[hide] </P>
<P>以下附件中的代码,在VBE中的视图中打开本地窗口,按F8单步执行,通过窗口变量可看到你的U盘的物理序列号,修改代码中的序列号后,再去掉代码 <FONT color=#ff0000>‘ </FONT><STRONG><FONT color=#ff0000>ThisWorkbook.Close False</FONT></STRONG><FONT color=#000000>前面的注释符 </FONT><FONT color=#ff0000>‘ </FONT></P>
<P>Private Sub Workbook_Open()<BR> Dim objWMIService As Object<BR> Dim colItems As Object<BR> Dim objitem As Object<BR> Dim a, b, c, d, e, U_Dist<BR> Set objWMIService = GetObject("winmgmts:\\.\root\cimv2")<BR> Set colItems = objWMIService.ExecQuery("Select * From Win32_USBHub")<BR> For Each objitem In colItems<BR> a = objitem.DeviceID<BR> If a Like "*VID*" Then<BR> b = Split(a, "\")<BR> c = Split(b(UBound(b) - 1), "&")<BR> d = Split(c(UBound(c) - 1), "_")<BR> e = Split(c(UBound(c)), "_")<BR> U_Dist = d(UBound(d)) + e(UBound(e)) + b(UBound(b))<BR> If U_Dist = "1307016300000000000027" Then Exit Sub 'U盘物理序列号<BR> End If<BR> Next<BR> MsgBox "找不到正确U盘,系统将退出!"<BR> ' <FONT color=#ff0000><STRONG>ThisWorkbook.Close False</STRONG></FONT><BR>End Sub</P>
<P></P> |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
|