通过硬件编号实现文件加密:仅指定电脑可用!

Function 获取网卡信息() As StringOn Error Resume NextDim objWMIService As Object, colItems As Object, objItem As ObjectDim infoStr As String, i As IntegerSet objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")Set colItems = objWMIService.ExecQuery("SELECT * FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled=True"): i = 1For Each objItem In colItemsinfoStr = infoStr & "网卡" & i & "名称:" & IIf(IsNull(objItem.Description), "未知", objItem.Description) & vbCrLfinfoStr = infoStr & "网卡" & i & "MAC地址:" & IIf(IsNull(objItem.MacAddress), "未知", objItem.MacAddress) & vbCrLfinfoStr = infoStr & "网卡" & i & "IP地址:" & IIf(IsNull(objItem.IPAddress), "未知", Join(objItem.IPAddress, ",")) & vbCrLfi = i + 1NextSet objWMIService = Nothing: Set colItems = Nothing获取网卡信息 = infoStrEnd Function

Function GetMac() As StringDim objItem As ObjectOn Error Resume NextFor Each objItem In GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2") _.ExecQuery("SELECT MacAddress FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled=True")GetMac = objItem.MacAddressIf Len(GetMac) > 0 Then Exit ForNextDebug.Print GetMacEnd Function

Private Sub Workbook_Open()If GetMac <> "94:C6:91:71:D9:BB" ThenMsgBox "对不起,文件不能在这台电脑中使用!", vbCritical, "提醒"ThisWorkbook.Close FalseEnd IfEnd Sub
。代码修改如下:Private Sub Workbook_Open()If GetMac <> "94:C6:91:71:D9:BB" ThenMsgBox "对不起,文件不能在这台电脑中使用!", vbCritical, "提醒"With ThisWorkbook.Saved = True.ChangeFileAccess xlReadOnlyKill .fullName.CloseEnd WithEnd IfEnd Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)Dim sht As WorksheetThisWorkbook.Sheets("提醒").Visible = xlSheetVisibleFor Each sht In ThisWorkbook.SheetsIf sht.Name <> "提醒" Then sht.Visible = xlSheetVeryHiddenNext shtEnd Sub
Private Sub Workbook_Open()If GetMac <> "94:C6:91:71:D9:BB" ThenMsgBox "对不起,文件不能在这台电脑中使用!", vbCritical, "提醒"With ThisWorkbook.Saved = True.ChangeFileAccess xlReadOnlyKill .fullName.CloseEnd WithEnd IfCall showallshtEnd SubSub showallsht()Dim sht As WorksheetFor Each sht In ThisWorkbook.Sheetssht.Visible = xlSheetVisibleNext shtThisWorkbook.Sheets("提醒").Visible = xlSheetVeryHiddenEnd Sub




评论