Excel VBA - снять пароль с проекта, программно

Весь MS Office, программирование на Visual Basic for Applications и MS VB

Модератор: Naeel Maqsudov

Аватара пользователя
VictorM
Сообщения: 794
Зарегистрирован: 23 окт 2006, 01:44
Откуда: Lugansk, Ukraine
Контактная информация:

Здравствуйте, уважаемые!
Такой вот вопрос (поиск по форуму ничего не дал), как можно программно снять пароль с проекта VBA?.
Конкретнее:
у нашего уважаемого Джона Уокенбаха есть пример программной замены модуля проекта на новый (пример, на всякий случай, прилагаю). Все получается отлично, но только если код проекта не запаролен. Иначе приходится сначала снимать пароль, а затем уже запускать процедуру, ИМХО теряется вся привлекательность подобной затеи.
Есть мысли?
Спасибо.
Pavel55
Сообщения: 418
Зарегистрирован: 20 окт 2006, 11:40
Откуда: Moscow

С помощью Advanced VBA Password Recovery
Аватара пользователя
VictorM
Сообщения: 794
Зарегистрирован: 23 окт 2006, 01:44
Откуда: Lugansk, Ukraine
Контактная информация:

Pavel55, лаконично :-). Спасибо.
но пароль мне известен, это мой пароль. Вопрос в том, чтобы ввести его программно :-(
Teslenko_EA
Сообщения: 526
Зарегистрирован: 04 фев 2007, 18:37
Откуда: Сургут
Контактная информация:

Здравствуйте VictorM.
попытайтесь поискать здесь:
http://www.lostpassword.com/
Евгений.
Аватара пользователя
VictorM
Сообщения: 794
Зарегистрирован: 23 окт 2006, 01:44
Откуда: Lugansk, Ukraine
Контактная информация:

Teslenko_EA, спасибо за ссылку, посмотрел. Но все это касается темы снятия "забытого" пароля.
Видимо я не до конца обозначил вопрос.
Предполагается, что код VBA книги UserBook.xls в примере закрыт паролем, я его знаю (напр. 12345) и нужно перед выполнением процедуры замены модуля снять пароль с кода проекта UserBook.xls.
P.S. если код проекта запаролен процедура, естесственно, выдает ошибку.
Teslenko_EA
Сообщения: 526
Зарегистрирован: 04 фев 2007, 18:37
Откуда: Сургут
Контактная информация:

Workbooks.Open Filename:="C:\Книга.xls", Password:="12345"
Аватара пользователя
VictorM
Сообщения: 794
Зарегистрирован: 23 окт 2006, 01:44
Откуда: Lugansk, Ukraine
Контактная информация:

Этот пример снимает пароль с рабочей книги, но не с кода VBA проекта. Здесь видимо все не так просто...
Аватара пользователя
Aent
Сообщения: 1129
Зарегистрирован: 01 окт 2006, 14:52
Откуда: Saratov,Russia
Контактная информация:

VictorM, попробуйте модифицировать этот пример
http://www.standards.com/Office/SetVBAP ... sword.html
А можно по простому

Код: Выделить всё

Application.VBE.CommandBars(1).FindControl(ID:=2578, recursive:=True).Execute
и sendkey , sendkey ;)
Ну и эту ветку посмотрите http://www.ozgrid.com/forum/showthread.php?t=13006
Аватара пользователя
Aent
Сообщения: 1129
Зарегистрирован: 01 окт 2006, 14:52
Откуда: Saratov,Russia
Контактная информация:

Правда мне всегда было непонятно в чём смысл пароля снимаемого десятком програм
за пару секунд ? Уж если люди захотят залезть в код то залезут ....
Для реальной защиты надо использовать или дополнительные утилиты. Я о них
писал уже на этом форуме или компилируемый в DLL COM ADD-IN.
Более серьёзные средства защиты обычно стоят дороже чем защищаемый VBS код :)
Аватара пользователя
VictorM
Сообщения: 794
Зарегистрирован: 23 окт 2006, 01:44
Откуда: Lugansk, Ukraine
Контактная информация:

Aent, большое спасибо за ссылки, сейчас обязательно буду пробовать.
А по поводу серьёзности защиты кода программы - абсолютно с Вами согласен. Снимается она за пару секунд :-). Но в данном случае, даже такое простое препятствие отбивает желание у пользователя "посмотреть, а что там внутри" и испоганить работу приложения. Самая обыкновенная "защита от дурака". Ибо нет ничего страшнее чем дурак с иниациативой.
Ответить