|
Удаление макросом VBA себя самого или своего модуля
|
|||
---|---|---|---|
#18+
White Owl GoldenAxeПослал лично...хм..... Почти убедил. Минусы твоего конкретного макроса: - Не будет работать на Экселях других версий. - Не будет работать на не русских Экселях. Но в принципе, да. Если этот макрос разрешить хотя бы один раз - он сделает то что нужно. Но главный минус - программная смена уровня безопасности потенциально вирусоопасна. Как только до твоего трюка додумается очередной кретин-вирусописатель этот трюк будет включен в базы антивирусов и твоя ЧЕСТНАЯ рабочая книга начнет считаться вирусом :) Лучше всего, класть инструкцию по смене уровня безопасности в дистрибутив программы. Да, на счет минусов согласен, но ведь никаких проблем узнать версию Excel и Винды нет, Sub ExcelVersion() On Error Resume Next Dim objShell Dim vatReturn Set objShell = CreateObject("WScript.Shell") vatReturn = objShell.RegRead( _ "HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Excel.Application\CurVer\") MsgBox vatReturn End Sub Так же можно установить и версию Винды. А на счет антивирусов - да, это к сожалению останется... но где наша не пропадала? %)) Найдем и как это обойти %))) Главное таким "макаром" можно сделать очень многие полезные и не очень вещи %))) ... |
|||
:
Нравится:
Не нравится:
|
|||
11.04.2006, 10:03 |
|
Удаление макросом VBA себя самого или своего модуля
|
|||
---|---|---|---|
#18+
GoldenAxe Мне НЕ НАДО воздействовать на другие файлы и программы, надо только "лицензировать" свою.Тоже приходится писать на VBA софт открытым текстом, так что о защите думал так же как и Вы. и пришел к тому, что скинул я весь код в ActiveX dll. Пишу код для CAD, а не для Excell. Но интерфес думаю будет похожий вот все манипуляции. 1)ActiveX DLL (project name SMELCAD см. GetInterfaceObject ниже) SmeLCAD.dll В References нужно будет добавить все то для чего пишешь. Код: plaintext 1. 2. 3. 4.
2)Макрос в CAD Код: plaintext 1. 2. 3. 4. 5. 6.
... |
|||
:
Нравится:
Не нравится:
|
|||
11.04.2006, 10:56 |
|
Удаление макросом VBA себя самого или своего модуля
|
|||
---|---|---|---|
#18+
SmeL_md GoldenAxe Мне НЕ НАДО воздействовать на другие файлы и программы, надо только "лицензировать" свою.Тоже приходится писать на VBA софт открытым текстом, так что о защите думал так же как и Вы. и пришел к тому, что скинул я весь код в ActiveX dll. Пишу код для CAD, а не для Excell. Но интерфес думаю будет похожий вот все манипуляции. 1)ActiveX DLL (project name SMELCAD см. GetInterfaceObject ниже) SmeLCAD.dll В References нужно будет добавить все то для чего пишешь. Код: plaintext 1. 2. 3. 4.
2)Макрос в CAD Код: plaintext 1. 2. 3. 4. 5. 6.
Да, такой вариант существует, но сложность в том, что проги я пишу для ламеров, которым будет сложно объяснить наличие ДВУХ файлов вместо одного и обязательность прописывания dll-библиотеки... ... |
|||
:
Нравится:
Не нравится:
|
|||
11.04.2006, 13:45 |
|
Удаление макросом VBA себя самого или своего модуля
|
|||
---|---|---|---|
#18+
А инсталляторы для чего придума :) ? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.04.2006, 14:00 |
|
Удаление макросом VBA себя самого или своего модуля
|
|||
---|---|---|---|
#18+
Собственно, если галочка на форме, то что мешает открыть эту форму, кинуть туда эту галочку, а потом закрыть. Да на Vasic-е это не так-то просто, но с помощью WinApi почти любое приложение сдаётся на ура. Как вариант - записать тело EXE-файла внутрь Макроса, а потом, когда надо - сложить на диск и запустить. Пользователь увидит, что что-то мелькнуло на экране - и ВСЁ. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.10.2007, 15:38 |
|
Удаление макросом VBA себя самого или своего модуля
|
|||
---|---|---|---|
#18+
Артем GИнтересно... раз мешает пароль может на каком то этапе его прогрмно убрать? White Owl GoldenAxeВНИМАНИЕ ВОПРОС! Как программным методом (кодами в начале макроса) изменить параметры безопасности и установить соответствующую галочку? Никак. Абсолютно. убрать пароль на какомто этапе возможно, как потом закрыть доступ к открытому проекту - ВОТ ТРАБЛ, его надо либо выгрузить без закрытия кнаги при помощи какой нибудь функции обратной Getobject либо перезапустить VBAProject также без закрытия кнаги Я тоже хочу защитить свои авторские права как и задумка таже GoldenAxeЯ НЕ ПИШУ ВИРУСЫ, дело в том, что я продаю свои мелкие программки на VBA и хочу защитить свои авторские права. Мне надо чтобы после определенной даты или после определенного кол-ва запуска программы она удаляла сама себя. Мне НЕ НАДО воздействовать на другие файлы и программы, надо только "лицензировать" свою. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.07.2008, 10:42 |
|
Удаление макросом VBA себя самого или своего модуля
|
|||
---|---|---|---|
#18+
Граждане, а готового решения так ни у кого и не появилось? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.08.2009, 15:07 |
|
Удаление макросом VBA себя самого или своего модуля
|
|||
---|---|---|---|
#18+
> Автор: haria > Граждане, а готового решения так ни у кого и не появилось? Да какое решение, всю защиту можно снять и посмотреть програмный код не открывая файл! Какое решение вы хотите? Удалить модуль, я думаю можно, сам удалять не пробовал, только добавлял, но для этого нужно поставить птицу доверять доступ к Visual Basic Project, поле этого только можно что-то делать програмно с кодом и то, после пререзапуска екселя. Т.е. что-то должно поменять значение в реестре до запуска макросов, переоткрыть ексель и запустить макрос. Не вижу проблем. Делайте, расказывайте о результатах, удачи! Posted via ActualForum NNTP Server 1.4 ... |
|||
:
Нравится:
Не нравится:
|
|||
06.08.2009, 15:58 |
|
Удаление макросом VBA себя самого или своего модуля
|
|||
---|---|---|---|
#18+
Игорь Горбонос, В том то и дело - от асов не защитишся, да и незачем - надо будет, и сами напишут, что им нужно. главное - от "умного" юзера защитить. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.08.2009, 16:05 |
|
Удаление макросом VBA себя самого или своего модуля
|
|||
---|---|---|---|
#18+
Может не вовремя :), но просмотрев тему и не увидев конкретного решения решил предложить своё: GoldenAxeНО!!! если Excel закрыт - то поменяв этот параметр при следующем запуске Excel галочка ПОЯВЛЯЕТСЯ!!! Т.е. надо чтоб скрипт сработал при закрытом Экселе!!! Как это можно сделать? Может макрос закрыть Excel и продолжать работать из оперативной памяти? При запуске Эксел считывает данные из реестра, т.е. 1. запускаем Эксель 2.Разрешаем макросы и меняем доверие к проэктам ВБА в реестре 3. Запускаем новое окно Экселя, после чего текущее можно закрыть. программно где-то так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53.
... |
|||
:
Нравится:
Не нравится:
|
|||
23.03.2010, 18:57 |
|
Удаление макросом VBA себя самого или своего модуля
|
|||
---|---|---|---|
#18+
boa_KAA, Подскажите, пожалуйста, каким образом макрос вообще начнет запускаться, если установлен высокий уровень безопасности? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.11.2010, 21:23 |
|
Удаление макросом VBA себя самого или своего модуля
|
|||
---|---|---|---|
#18+
GoldenAxe, на сколько я помню, на проект VBA в Excel можно поставить пароль, т.е. без него нельзя посмотреть и изменить код макроса. Вот в таком "защищенном" коде и делайте различные проверки. Хотя не знаю, может этот пароль уже давно взламывают. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.11.2010, 06:24 |
|
Удаление макросом VBA себя самого или своего модуля
|
|||
---|---|---|---|
#18+
GoldenAxe, спасибо за код, отправленный мне на Email, все работает: галочка в "Доверять доступ к VBP" ставится, макрос сам себя удаляет. Минус: если код разместить в книге для выполнения при открытии, ругается антивирус (McAfee), но это можно обойти. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.12.2010, 19:09 |
|
Удаление макросом VBA себя самого или своего модуля
|
|||
---|---|---|---|
#18+
я так понял макросы написанные на ВБА, можно сохранить в .dll, её через Референс добавит и пользоваться Это сложно?? Есть где примеры, почитать?? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.12.2010, 19:43 |
|
Удаление макросом VBA себя самого или своего модуля
|
|||
---|---|---|---|
#18+
GoldenAxe, если не сложно, прошу выслать код макроса, кот. ставит "галочку" на доверии к проектам, что позволит немножко защитить свои авторские права. Позарез нужно ... ... |
|||
:
Нравится:
Не нравится:
|
|||
20.05.2011, 18:59 |
|
Удаление макросом VBA себя самого или своего модуля
|
|||
---|---|---|---|
#18+
да что уж, если не сложно на всеобщее обозрение ... |
|||
:
Нравится:
Не нравится:
|
|||
20.05.2011, 19:15 |
|
Удаление макросом VBA себя самого или своего модуля
|
|||
---|---|---|---|
#18+
Как вариант, с некоторыми недостатками: - привязка к имени, - Каспер матюкается... ... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2011, 16:29 |
|
Удаление макросом VBA себя самого или своего модуля
|
|||
---|---|---|---|
#18+
Можно обрезать, удалив Module2, кот. собственно говоря, для наглядности + закомментировать "Exit". ... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2011, 16:32 |
|
Удаление макросом VBA себя самого или своего модуля
|
|||
---|---|---|---|
#18+
GoldenAxe, А что если файл сохранить в каком-нибудь древнем формате, например в xlExcel4 (проект VBA точно не перенесет этого). У меня получилось подобное сделать только в Excel2003 - ничего не осталось и "доступ к Visual Basic Project" был не разрешен. Код такой (я сам тот ещё дилетант, так что любые исправления и дополнения охотно и с благодарностью принимаю): Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
Помогите пожалуйста, сделать код который будет работать от Excel2003 и выше. Основная идея - оставить пустой файл. Спасибо! ... |
|||
:
Нравится:
Не нравится:
|
|||
28.08.2014, 11:21 |
|
Удаление макросом VBA себя самого или своего модуля
|
|||
---|---|---|---|
#18+
rubberman.... .Основная идея - оставить пустой файл. Спасибо! о ... |
|||
:
Нравится:
Не нравится:
|
|||
29.08.2014, 22:01 |
|
Удаление макросом VBA себя самого или своего модуля
|
|||
---|---|---|---|
#18+
GoldenAxe, Здравствуйте! Нахожусь в положении, близком к Вашему. Единственная разница - хочу уничтожить документ Xlam по истечении срока лицензии или переносе на другой комп. Не могли бы выслать свой код для уничтожения Документа и/или его страниц и кодов? С Благодарностью М.К. PS Прошёл к Вам со страницы http://www.sql.ru/forum/278951/udalenie-makrosom-vba-sebya-samogo-ili-svoego-modulya PPS А как Вам приём, предложенный пользователем Vlad_k9? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.06.2018, 16:49 |
|
|
start [/forum/topic.php?fid=60&msg=33658353&tid=2155044]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
32ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
61ms |
get tp. blocked users: |
2ms |
others: | 14ms |
total: | 153ms |
0 / 0 |