![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу. Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста". Название темы слишком короткое или не отражает сути вашего вопроса. Тема исчерпала себя, помните, один вопрос - одна тема Прочитайте правила и заново правильно создайте тему. |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 30.01.2009
Сообщений: 75
|
![]() ![]() ![]() |
![]() |
![]() |
#2 | |
Программист VBA
СуперМодератор
Регистрация: 13.07.2008
Сообщений: 6,858
|
![]()
Полностью защитить код проекта VBA не получится...
Тема неоднократно обсуждалась на этом и на соседних форумах. Посмотрите, например, здесь, здесь и здесь. Цитата:
Не забывайте ещё про аналогичный пункт в контекстном меню книги. Но это не лучший способ. Можно сделать, как я видел однажды в одном макровирусе - там переопределяется команда открытия редактора VBA - создаётся пустой макрос с названием типа ToolsMacro - и попытка посмотреть код не удаётся (редактор VBA не открывается). Но обойти такую защиту очень легко.
__Полезные надстройки для Excel. Парсинг сайтов и файлов.
![]() Последний раз редактировалось EducatedFool; 30.01.2009 в 15:44. |
|
![]() |
![]() |
#3 |
Пользователь
Регистрация: 30.01.2009
Сообщений: 75
|
![]()
Как переопределить команду открытия редактора?
Где вообще лежит событие открытия главного окна редактора или его надо самому писать? |
![]() |
![]() |
#4 |
Пользователь
Регистрация: 30.01.2009
Сообщений: 75
|
![]()
Подскажите, Как переопределить команду открытия редактора?
|
![]() |
![]() |
#5 |
Пользователь
Регистрация: 30.01.2009
Сообщений: 75
|
![]() ![]() Что не так? ![]() |
![]() |
![]() |
#6 | |
Программист VBA
СуперМодератор
Регистрация: 13.07.2008
Сообщений: 6,858
|
![]() Цитата:
Если да, то всё очень просто. 10 раз в секунду Ваш "загрузчик" считывает заголовки всех открытых окон, и, если среди них присутствует окно с заголовком Microsoft Visual Basic, посылает этому окну команду закрытия. Но что мешает пользователю снять пароль с файла, и на другом компе (где нет "загрузчика") посмотреть код VBA? |
|
![]() |
![]() |
#7 |
Старожил
Регистрация: 12.05.2007
Сообщений: 2,339
|
![]()
Есть сотни методов эффективных защит, защитите сам файл, а не редактор, например: через RAR + пароль(причем не надо, постоянно распаковывать, запаковывать, работа прям в RAR -е), спрятать док в фотку, заменить расширение ...........
Последний раз редактировалось valerij; 30.01.2009 в 19:25. |
![]() |
![]() |
#8 |
Старожил
Регистрация: 15.05.2008
Сообщений: 2,058
|
![]()
В дополнение к ссылкам EducatedFool могу порекоменовать посмотреть вот эту тему Пароль на защиту листа.
"Дайте людям рыбы, и вы накормите их на весь день; научите их ловить рыбу - и вы накормите их на всю жизнь"
"Большое спасибо" - Z261597841314, R208907249777, U447361470499 |
![]() |
![]() |
#9 |
Пользователь
Регистрация: 30.01.2009
Сообщений: 75
|
![]()
Но что мешает пользователю снять пароль с файла, и на другом компе (где нет "загрузчика") посмотреть код VBA?[/QUOTE]
Спасибо, EducatedFool и VictorM. Пароль на файл электронной таблицы, состоящий из 20-30 символов практически не снимается внешними взломщиками паролей. Они эффективны до 10 символов и не более. Но пользователь, находяь в открытом через загрузчик файле, может его пересохранить без пароля, если я не исключу такую возможность. Я ее исключил и написал свое сохранение файла без возможности снятия пароля. Можно изменить только имя. Написал полностью свое меню и запретил его изменение со стороны пользователя и перехватил клавиши доступа к меню и к проекту (Alt+F11). Таким образом у пользователя осталась одна возможность доступа к проекту VBA со взломанным паролем - через ярлычек листа "исходный текст". Никак не пойму, что здесь можно изменить. Или просто скрыть ярлычки листов, а навигацию по книге написать свою и засунуть ее в меню или контекстнозависимое меню. Есть два вопроса: 1.Как написать событие на открытие главного окна проекта по типу того что при открытии листа: Private Sub Worksheet_Activate() 2. Как управлять параметрами этих дурацких ярлычков. ![]() ![]() Думаю, от моих дурацких вопросов я потеряю репутацию с 10 до 3. ![]() ![]() Последний раз редактировалось Raikhman; 31.01.2009 в 12:43. |
![]() |
![]() |
#10 | |||
Программист VBA
СуперМодератор
Регистрация: 13.07.2008
Сообщений: 6,858
|
![]() Цитата:
Может, что-то вроде этого: Код:
Цитата:
Код:
Или просто заблокировать данный пункт: Код:
Код:
Или вообще отключать всё лишнее: Код:
Цитата:
Вот только обеспечить полную защиту таким способом вряд ли удастся... |
|||
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Программа на VBA в виде функции пользователя | Strel'nikova | Помощь студентам | 3 | 31.10.2008 13:53 |
Как средствами VBA получить доменное имя пользователя? | Прохожий | Microsoft Office Excel | 3 | 04.10.2008 18:28 |
защита ячейки в VBA | tat-besidovska | Microsoft Office Excel | 4 | 06.02.2008 04:57 |
Формы пользователя Excel | Bayers | Microsoft Office Excel | 3 | 18.07.2007 21:22 |
защита приложения от копирования | flaxe | Общие вопросы Delphi | 2 | 19.11.2006 22:26 |