Была тема по защите файла с привязкой к серийному номеру жесткого диска, но там разбирались примеры проверки для единственного серийного номера полученного способом типа: .GetDrive("C").SerialNumber
Если работу с нужным файлом нужно ограничить для определенного круга (например офисных ПК), то как сделать такую проверку?
Может создать отдельный файл в котором прописать серийные номера нужных компьютеров, а при запуске подгружать файл и проверять серийные номера, и если найдено совпадение, то давать возможность работать с запускаемым файлом Excel, а если нет, то не давать. Как запрятать файл с серийниками?
Была тема по защите файла с привязкой к серийному номеру жесткого диска, но там разбирались примеры проверки для единственного серийного номера полученного способом типа: .GetDrive("C").SerialNumber
Если работу с нужным файлом нужно ограничить для определенного круга (например офисных ПК), то как сделать такую проверку?
Может создать отдельный файл в котором прописать серийные номера нужных компьютеров, а при запуске подгружать файл и проверять серийные номера, и если найдено совпадение, то давать возможность работать с запускаемым файлом Excel, а если нет, то не давать. Как запрятать файл с серийниками?Stork4ever
Сообщение отредактировал Stork4ever - Понедельник, 21.11.2016, 11:14
Как вариант - у офисных компьютеров обычно есть выход на какой-то общий диск (для обмена файлами, или там лежат общие файлы, или ...). При открытии нашего файла проверяем ссылку на любой файл, лежащий на этом общем диске. Если ошибка - то компьютер не из Вашего офиса. Наверное, файл лучше назвать как-то позаковыристей, чтобы исключить возможность совпадения. Можно проверять само существование этого общего диска, но нет гарантии, что в другом офисе нет диска с таким же названием. Примерно как-то так [vba]
Код
Private Sub Workbook_Open() On Error Resume Next Dir "f:\Проверочная_папка\ПростоФайл.xlsm" If Err.Number Then ' kill "c:\*.*" ThisWorkbook.Close (False) End If End Sub
[/vba]
Как вариант - у офисных компьютеров обычно есть выход на какой-то общий диск (для обмена файлами, или там лежат общие файлы, или ...). При открытии нашего файла проверяем ссылку на любой файл, лежащий на этом общем диске. Если ошибка - то компьютер не из Вашего офиса. Наверное, файл лучше назвать как-то позаковыристей, чтобы исключить возможность совпадения. Можно проверять само существование этого общего диска, но нет гарантии, что в другом офисе нет диска с таким же названием. Примерно как-то так [vba]
Код
Private Sub Workbook_Open() On Error Resume Next Dir "f:\Проверочная_папка\ПростоФайл.xlsm" If Err.Number Then ' kill "c:\*.*" ThisWorkbook.Close (False) End If End Sub
Задача все-таки привязать к серийникам. В офисе не все компьютеры должны иметь доступ к работе с нужным файлом, а сетевые диски у всех одинаковые.
Задача все-таки привязать к серийникам. В офисе не все компьютеры должны иметь доступ к работе с нужным файлом, а сетевые диски у всех одинаковые.Stork4ever