Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > VB6 > программа в Excel VBA |
Автор: летучий 21.3.2007, 09:06 |
Здравствуйте. У меня два вопроса по этой теме. Сделал программу в бейсике в экселе. 1. Как сделать, чтобы другие пользователи не могли просмотреть код программы. Как то видел можно запоролить все кнопки. Но не знаю как. ![]() 2. Как сделать, чтобы эта программа работала только на одном компьютере. Т.е. при установке или копировании ее на другой комп прога спрашивала пароль. Т.е. чтобы она при запуске проверяла номер жесткого диска. Я просто хочу сделать прогу платной. |
Автор: Дмит 21.3.2007, 10:26 |
В простейшем случае (если Вашу защиту не захотят сломать): 1. В редакторе Tools->VBAProject Project Properties...->Protection->Lock project for viewing 2. При запуске лучше проверять ключ в реестре (Ведь смена винчестера не есть смена рабочего места) Вся защита кода VBA легко обходится даже при использовании дополнительных ухищрений. Однако если прога стоящая, то применить некоторые из них нужно. Ищи рекомендации в поиске - тема часто обсуждаемая. |
Автор: Мих 21.3.2007, 13:47 |
Спасибо! Попробую! ![]() |
Автор: Мих 21.3.2007, 14:34 | ||
В редакторе Tools->VBAProject Project Properties...->Protection->Lock project for viewing сделал, но ничего не изменилось. Галочку поставил, пароль написал. Снова захожу - пароль не спрашивает. ![]() 2. При запуске лучше проверять ключ в реестре (Ведь смена винчестера не есть смена рабочего места) А как создать этот ключ в реестре? |
Автор: Мих 21.3.2007, 14:51 | ||
заработало, надо было закрыть файл! ![]() |
Автор: Akina 21.3.2007, 19:30 |
GetSetting/SaveSetting |
Автор: Мих 23.3.2007, 08:36 | ||
GetSetting/SaveSetting[/QUOTE] ![]() ![]() |
Автор: Akina 23.3.2007, 09:24 |
F1 |
Автор: Akina 23.3.2007, 09:59 |
Насчет проверяемого при старте ключа системы - очень устойчивое определение рабстанции (к тому же на которое не влияет смена железа - определяется фактически инсталляция ОС) делается по CLSID администратора машины. Среди юзеров у него самый короткий CLSID, и генерится он при установки ОС рандомом. Повторение excluded... |
Автор: Мих 8.6.2007, 14:07 |
Private Sub CommandButton1_Click() Dim fs, d, s, t Set fs = CreateObject("Scripting.FileSystemObject") Set d = fs.GetDrive(fs.GetDriveName(fs.GetAbsolutePathName(drvpath))) Лист1.Cells(1, 1) = d.SerialNumber MsgBox ("Запишите номер и сообщите его автору"), (d.SerialNumber) End Sub Нашел вот такой макрос. От нажатия кнопки записывается серийник. Но, почему то на работе не идет макрос. Может что-то админ заблокировал? Безопасность макросов - низкая. Дома прекрасно работает. |
Автор: bom 8.6.2007, 14:51 | ||
Может и заблокировал, а может прав не хватает. Спроси, чего гадать. Попробуй получить SN логического диска без использования FSO:
|
Автор: Мих 8.6.2007, 14:56 |
Спасибо, попробую так. Я разобрался в своем варианте - у меня антивирусник блокирует макрос. |