Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.08.2015, 14:57   #11
Aqil_f
Форумчанин
 
Регистрация: 12.05.2009
Сообщений: 273
По умолчанию

Я согласен что,взломать, можно, что угодно. Но я сам когда то делал в старом foxbase что-то пахожее. этот файл нельзя было использувать в другом компютера
Aqil_f вне форума Ответить с цитированием
Старый 15.08.2015, 07:23   #12
kvitaliy
Участник клуба
 
Регистрация: 17.05.2011
Сообщений: 1,660
По умолчанию

Цитата:
Сообщение от Aqil_f Посмотреть сообщение
Мне надо сделать так что этот файл не работал в других компютерах, как то привязить файл с номерами HDD или как то по другому.
Вначале пишите такой скрипт
Код:
Private Sub Workbook_Open()
'Считывание ID копьютера
Dim ID As String
Set wmi1 = GetObject("winmgmts:")
For Each cpu In wmi1.InstancesOf("Win32_Processor")
   ID = ID & cpu.ProcessorId
   
Next
'Правильный и только Ваш ID вначале уззнаете так
'Worksheets("Лист1").Range("A1") = ID
'или так
'MsgBox ID
'потом это значение копируетевместо того, что в скобках:

If ID <> "BFEBFBСС000206A7" Then ' Если значение не совпадает, то комп не тот и программа завершается!
End
End If
End Sub
Потом ставите пароль на ваш скрипт. Или лучше найдите в сети ProtectVBA. Этот прием поможет защитить файл от честных людей и нечестных, но глупых.
Зашита Офисных файлов организована Мелкософтом очень плохо и легко снимается специальными программами в 1 клик, даже думать не надо.

Если нужно надежно защитить файл, ну чтобы никто и практически никогда, то проще и надежнее запароленного RAR архива не найти.
При достаточно сложном и длинном пароле файл будет надежно сохранен. Но это способ только для одного пользователя, если есть ещё кто то, то смысла уже нет.
kvitaliy вне форума Ответить с цитированием
Старый 15.08.2015, 09:02   #13
Aqil_f
Форумчанин
 
Регистрация: 12.05.2009
Сообщений: 273
По умолчанию

Kvitaliy, спасибо большое, то что мне надо было
Но один вопрос: Как можно делать без этого
'потом это значение копируете вместо того, что в скобках: ?
Т.е., программа сама нашла ID и сама вставила. Наверное это не очень сложная, но у меня не получается
Aqil_f вне форума Ответить с цитированием
Старый 15.08.2015, 09:56   #14
kvitaliy
Участник клуба
 
Регистрация: 17.05.2011
Сообщений: 1,660
По умолчанию

Весь смысл в том, чтобы зарание определить ID того компютера, где будет работать код. Для этого вам надо раскоментировать строчки и увидеть его значение. И это значение вставить вместо моего. Потом опять закоментировать , ни кто не должен кроме вас знать ID. Что тут сложного?
kvitaliy вне форума Ответить с цитированием
Старый 15.08.2015, 10:24   #15
Aqil_f
Форумчанин
 
Регистрация: 12.05.2009
Сообщений: 273
По умолчанию

Я все это делал (раскоментировал строчки и увидел его значение. И это значение вставил вместо вашего.) все очень хорошо. Но я хочу вот именно без этого, т.е., c "первого" раза программа сама нашла ID, сама вставила и проверила.
Aqil_f вне форума Ответить с цитированием
Старый 15.08.2015, 14:42   #16
kvitaliy
Участник клуба
 
Регистрация: 17.05.2011
Сообщений: 1,660
По умолчанию

Цитата:
Сообщение от Aqil_f Посмотреть сообщение
Я все это делал (раскоментировал строчки и увидел его значение. И это значение вставил вместо вашего.) все очень хорошо. Но я хочу вот именно без этого, т.е., c "первого" раза программа сама нашла ID, сама вставила и проверила.
Что сама вставила? Вы или сути не понимаете, или я плохой рассказчик.
Ну смотрите, у нас есть компьютер и мы только для него пишем защитный код. Для этого надо знать его ID. Этот кусок кода узнает ID
Код:
'Считывание ID копьютера
Dim ID As String
Set wmi1 = GetObject("winmgmts:")
For Each cpu In wmi1.InstancesOf("Win32_Processor")
   ID = ID & cpu.ProcessorId
   
Next
Теперь в переменной ID есть некая строка, которая характеризует ваш компьютер.
Вы это значение записываете руками в ваш код в это место
If ID <> "некая строка"
Теперь если код будет запущен на другом компьютере, то в этом куске кода:
Код:
If ID <> "Некая строка" Then ' Если значение не совпадает, то комп не тот и программа завершается!
End
End If
Значения не совпадут, ведь ID будет другой, и программа закроется, т.е. не будет работать.


Теперь обьясните мне, что значит
Цитата:
c "первого" раза программа сама нашла ID, сама вставила и проверила.
?

Программа и так сама находит текущий ID и проверяет соответствие с ID нашего компьютера, но она должна знать, с чем сравнивать! А сравнивать она будет именно с вашим значением, которое вы вписали заранее.
kvitaliy вне форума Ответить с цитированием
Старый 15.08.2015, 15:04   #17
Aqil_f
Форумчанин
 
Регистрация: 12.05.2009
Сообщений: 273
По умолчанию

Вы это значение записываете руками в ваш код в это место Я хочу чтобы не я записовала руками, а программа после того как нашел ID, сама записовала в мой код в это место
Aqil_f вне форума Ответить с цитированием
Старый 15.08.2015, 17:16   #18
Djeki
Форумчанин
 
Регистрация: 24.01.2011
Сообщений: 136
По умолчанию

Цитата:
Сообщение от Aqil_f Посмотреть сообщение
Вы это значение записываете руками в ваш код в это место Я хочу чтобы не я записовала руками, а программа после того как нашел ID, сама записовала в мой код в это место
Так эта программа запишет ID на моём компе, и на любом другом..Толку от такой программы ??
Djeki вне форума Ответить с цитированием
Старый 15.08.2015, 17:26   #19
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

Зачем тебе, аффтор, это всё?
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 15.08.2015, 19:22   #20
kvitaliy
Участник клуба
 
Регистрация: 17.05.2011
Сообщений: 1,660
По умолчанию

Цитата:
Сообщение от Aqil_f Посмотреть сообщение
Вы это значение записываете руками в ваш код в это место Я хочу чтобы не я записовала руками, а программа после того как нашел ID, сама записовала в мой код в это место
Вы явно не понимаете смысла защиты файла от запуска на чужом компьютере. Или не понимаете код программы, что для чего написано.
В том и хитрость что эта строка и есть "секретный" защитный код, который вы должны сами руками записать.
А если эта программа на каждом компьютере будет вписывать ID этого самого компьютера какой же в этом смысл?
kvitaliy вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Защита от копирования mavlon_m Общие вопросы Delphi 20 19.08.2013 14:12
защита CD от копирования dell 2011 Софт 2 07.04.2012 19:33
как защитить документ xls от копирования soulstrong Microsoft Office Excel 1 07.06.2009 11:51
Защита .xls файла на месяц valerij Microsoft Office Excel 2 09.02.2008 03:03