Страницы: 1
RSS
Защита программы от использования на другом компьютере.
 
Здравствуйте, помогите пожалуйста, мне нужно как нибудь защитить файл excel от использования его на другом компьютере, как это можно осуществить ? знаю, что можно привязать к серийному номеру жесткого диска т.е. том, но при форматировании его, серийный номер измениться, это не подходит. что можно придумать ?  :(
 
Поставьте пароль на открытие. Желательно не 123, а как положено, хаотичный набор символов в нижнем и вернхнем регистре вперемешку + спец.символы(@!#%$ и т.п.). И не менее 12 символов.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
не подходит, так как эту программу будет использовать одна контора, и при запуске ее она будет знать пароль, чтобы работать с программой
 
Может быть попробовать привязать к mac адресу!  Либо же организовать проверку на наличие какого либо файла, Который можно положить в папку с виндой или  еще куда!
Если очень захотеть - можно в космос полететь ;)
 
Цитата
inhouse пишет:
при форматировании его [HDD], серийный номер измениться
Это действительно так?
 
Вариант: по IP-адресу.
 
кстати да, s/n HDD при форматировании не изменится, изменить его при прошивки микропрограммы HDD поэтому если знаете как привязать к серийнику жёсткого диска привязывайте!

Вот на просторах интернета наткнулся на то как узнать Мак адрес, думаю будет полезно:
Код
Function Get_All_MAC_Addresses() As Collection
    Set Get_All_MAC_Addresses = New Collection: On Error Resume Next
    Set objWMIService = GetObject("winmgmts:\\.\root\cimv2")
    Set colAdapters = objWMIService.ExecQuery("SELECT * FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled = True")

    For Each objAdapter In colAdapters
        If Not IsNull(objAdapter.IPAddress) Then
            For i = 0 To UBound(objAdapter.IPAddress)
                Get_All_MAC_Addresses.Add objAdapter.MacAddress(i), objAdapter.MacAddress(i)
            Next
        End If
    Next
End Function

Sub test_Get_All_MAC_Addresses()
    For Each i In Get_All_MAC_Addresses
        Debug.Print i
    MsgBox i
    Next
End Sub
Если очень захотеть - можно в космос полететь ;)
 
Цитата
lexey_fan пишет: s/n HDD при форматировании не изменится
Вот и я к тому же... С чего автор так решил? Иначе какой смысл производителям писать этот номер на самом HDD ?
 
Я имею ввиду логический номер диска, который меняется при каждом переформатировании, а иначе наверное привязать нельзя, именно к серийному номеру жесткого
 
А причём здесь логический номер? И каким образом он поменяется при форматировании? Вы же писали о серийном - вот и привязывайтесь к нему.
 
в том то и дело, что к серийному номеру жесткого диска, который указан на жестком не знаю как привязать, а насчет логического номера, было проверено, что он меняется, при форматировании.
 
Не буду с Вами спорить про форматирование, а информацию про то, как узнать серийный номер, Вы можете найти на нашем сайте, задав в поиске вопрос: "серийный номер диска"
 
Можно вот так по серийному номеру диска
Код
Public Sub GetDiskInfos()
    Dim pWMI As Object, pDisks As Object, pDisk As Object
    
    Set pWMI = GetObject("winmgmts:\\")
    Set pDisks = pWMI.ExecQuery("Select * from Win32_DiskDrive Where BytesPerSector Is Not Null", , 48)
    
    For Each pDisk In pDisks
        Debug.Print "Model:" & pDisk.Model
        Debug.Print "MediaType:" & pDisk.MediaType
        Debug.Print "SerialNumber:" & pDisk.SerialNumber
    Next
End Sub

Public Function CheckDiskSerial(ByVal this As String) As Boolean
    Dim pWMI As Object, pDisks As Object, pDisk As Object
    Set pWMI = GetObject("winmgmts:\\")
    Set pDisks = pWMI.ExecQuery("Select * from Win32_DiskDrive Where SerialNumber = '" & this & "'", , 48)
    CheckDiskSerial = False
    For Each pDisk In pDisks
        CheckDiskSerial = True: Exit For
    Next
End Function

Процедурой вывести данные жёстких дисков, подключенных к компьютеру, по MediaType определить встроенные (Fixed). Записать серийный номер, а потом уже в программе проверять функцией.
 
Ложка дёгтя:
Есть несколько способов открыть книгу Excel без запуска макроса. Воспользовавшись любым из них нежелательные пользователи могут исправить контрольные данные дисков на свои.
 
В Зависимости где будет прописан номер диска, если в теле макроса и поставить пароль на макрос обычному Пользователю будет проблемно расковырять это дело, а также скрыть програмно листы и открывать их при проверке на СН, а при закрытии книги снова скрывать, я так делал с листами в свое время
Если очень захотеть - можно в космос полететь ;)
 
а 2 пароля не подойдет?, на открытие и на редактирование.  

Файл - Сокранить как - Сервис - Общие параметры.
 
Здравствуйте.Меня тоже интересует эта тема.Нашел на просторах инета файлик калькулятор вот ссылка https://yadi.sk/i/Ave_iSt0n65aP как сделать так как в нём. Сам файл мне не нужен интересует как сделано.
 
Взяли код из #13? и засунули в тот файл.
 
Цитата
anvg написал:
Можно вот так по серийному номеру диска
Здравствуйте,

Файл привязывается - при вводе пароля ? - правильно я понимаю ?


С уважением.
Страницы: 1
Наверх