День добрый всем !
Задался целью обезопасить учетную рабочую таблицу чтобы файл Excel работал только на определенном компе
- а если на других открываешь файл самоуничтожается
Нашел замечательный код здесь от уважаемого
При тесте узнал предварительно серийник диска С своего компьютера (через командную строку сделать wmic diskdrive get model,name,serialnumber ) , ввожу свой серийник диска С и пробую запустить на своем же компьютере - но вываливается
MsgBox "Вы пытаетесь открыть файл на другом компьютере" хотя серийник ввел правильно 100% (перепроверил серийный номер другими прогами)
В чем может быть ошибка - серийник диска обычно выдается большими буквами типа JPS930N11PNDRV - может маленькими надо вводить или что в коде поправить ?
Задался целью обезопасить учетную рабочую таблицу чтобы файл Excel работал только на определенном компе
- а если на других открываешь файл самоуничтожается
Нашел замечательный код здесь от уважаемого
| Код |
|---|
Private Sub Workbook_Open()
Const My_Drive_C_SerialNumber = "12345678" ' сюда пишем серийный номер своего диска
If Drive_C_SerialNumber <> My_Drive_C_SerialNumber Then
MsgBox "Вы пытаетесь открыть файл на другом компьютере", vbCritical, "Нет доступа"
Application.DisplayAlerts = False
newsh = ThisWorkbook.Worksheets.Add.Name ' создаём пустой лист
For Each sh In ThisWorkbook.Worksheets
If sh.Name <> newsh Then sh.Delete ' удаляем все листы этого файла, кроме пустого
Next
ThisWorkbook.Save
ThisWorkbook.Close False
End If
End Sub
Function Drive_C_SerialNumber() As String
Drive_C_SerialNumber = CreateObject("scripting.filesystemobject").GetDrive("c:\").SerialNumber
End Function |
При тесте узнал предварительно серийник диска С своего компьютера (через командную строку сделать wmic diskdrive get model,name,serialnumber ) , ввожу свой серийник диска С и пробую запустить на своем же компьютере - но вываливается
MsgBox "Вы пытаетесь открыть файл на другом компьютере" хотя серийник ввел правильно 100% (перепроверил серийный номер другими прогами)
В чем может быть ошибка - серийник диска обычно выдается большими буквами типа JPS930N11PNDRV - может маленькими надо вводить или что в коде поправить ?
Изменено: - 06.06.2018 17:54:08