powered by simpleCommunicator - 2.0.36     © 2025 Programmizd 02
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Удаление макросом VBA себя самого или своего модуля
25 сообщений из 47, страница 1 из 2
Удаление макросом VBA себя самого или своего модуля
    #33643655
GoldenAxe
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Многих мучает вопрос как с помощью команды макроса в Excel удалить сам макрос или один из его модулей.
Варианты такие:
*******************
Sub DeleteAllLines() ' удаляет все что написано в Модуле1
With ThisWorkbook.VBProject.VBComponents("Module1").CodeModule
.DeleteLines 1, .CountOfLines
End With
End sub
*******************
Sub DeleteModule() ' удаляет сам Модуль1
Dim vbc As VBComponent
Set vbc = ThisWorkbook.VBProject.VBComponents("Module1")
ThisWorkbook.VBProject.VBComponents.Remove vbc
Set vbc = Nothing
End sub
*******************
Sub DeleteModule() ' удаляет весь макрос
Dim tmp As String
Dim vbc As VBComponent
Dim prj As VBIDE.VBE

Set prj = Excel.Application.VBE

For Each vbc In prj.VBProjects("NAME").VBComponents
If (vbc.Type = vbext_ct_MSForm Or vbc.Type = vbext_ct_StdModule Or vbc.Type = vbext_ct_ClassModule) And vbc.Name <> "Module2" Then
tmp = vbc.Name
prj.VBProjects("NAME").VBComponents.Remove vbc
tmp = ""
End If
Next vbc
Set prj = Nothing

End sub
*******************

НО!!!!!!!!!!!!!!!!!!!
Все эти коды выполняются ТОЛЬКО с установленной галочкой «Доверять доступ к Visual Basic Project» («Trust access to Visual Basic Project») в параметрах безопасности макросов.

ВНИМАНИЕ ВОПРОС!
Как программным методом (кодами в начале макроса) изменить параметры безопасности и установить соответствующую галочку?

Я НЕ ПИШУ ВИРУСЫ, дело в том, что я продаю свои мелкие программки на VBA и хочу защитить свои авторские права. Мне надо чтобы после определенной даты или после определенного кол-ва запуска программы она удаляла сама себя. Мне НЕ НАДО воздействовать на другие файлы и программы, надо только "лицензировать" свою.

Была еще такая идея:
После проверки даты или кол-ва запусков, в случае привышения макрос сохраняет свой же файл в формате Excel 3.0, который не может содержать макросов. Идея прекрасно воплощяется в жизнь, но только если сам макрос не защищен паролем! Может как-то развить это направление?


Слышал еще такое:
Что если проект имеет цифровую подпись MicroSoft то даже эта галочка не нужна, т.к. в таком случае Excel воспринемает эту прогу как "свою родную" и разрешает любые манипуляции с макросом самим макросом. Для этого надо всего-лишь подписаться цифровым сертификатом MS. Кто-нибудь знает как это сделать? Тем более что прога по присвоению сертификатов находится в стандартной комплектации Офиса.

Заранее спасибо за все советы!
...
Рейтинг: 0 / 0
Удаление макросом VBA себя самого или своего модуля
    #33643757
Фотография k-nike
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как вариант.
А если в начале макроса делать проверку и не выполнять его просто по определенному условию?
...
Рейтинг: 0 / 0
Удаление макросом VBA себя самого или своего модуля
    #33644224
Артем G
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Интересно... раз мешает пароль может на каком то этапе его прогрмно убрать?
...
Рейтинг: 0 / 0
Удаление макросом VBA себя самого или своего модуля
    #33644470
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GoldenAxeВНИМАНИЕ ВОПРОС!
Как программным методом (кодами в начале макроса) изменить параметры безопасности и установить соответствующую галочку?
Никак. Абсолютно.
...
Рейтинг: 0 / 0
Удаление макросом VBA себя самого или своего модуля
    #33644481
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GoldenAxeСлышал еще такое:
Что если проект имеет цифровую подпись MicroSoft то даже эта галочка не нужна, т.к. в таком случае Excel воспринемает эту прогу как "свою родную" и разрешает любые манипуляции с макросом самим макросом.Нет.
"Подписаная" и сконвертированная в add-on книга сможет только запускать имеющиеся в ней макросы без требования к пользователю включить поддержку макросов для этой книги. Но модифицировать макросы она все равно не сможет если пользователь не разрешит.
...
Рейтинг: 0 / 0
Удаление макросом VBA себя самого или своего модуля
    #33644797
Ashton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
GoldenAxeВНИМАНИЕ ВОПРОС!
Как программным методом (кодами в начале макроса) изменить параметры безопасности и установить соответствующую галочку?
За уровень безопасности отвечает параметр "Level" раздела реестра "HKEY_CURRENT_USER\\Software\\Microsoft\\Office\\11.0\\Excel\\Security" (для Office 2003).

За доверительный доступ отвечает параметр "AccessVBOM" того же раздела.

Уровень безопасности в начале выполнения макроса изменить нельзя. Собственно, что выполнять, если макросы отключены. Его можно изменить из внешнего приложения или скрипта. Этот вопрос обсуждался здесь.
...
Рейтинг: 0 / 0
Удаление макросом VBA себя самого или своего модуля
    #33645567
GoldenAxe
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
k-nikeКак вариант.
А если в начале макроса делать проверку и не выполнять его просто по определенному условию?

Да это как раз не вариант... Елси просто не запустить макрос - его тело останется без изменений, и если в него влезть - можно просто убрать эту проверку и прога заработает. А влезть даже в запароленый макрос - не проблема... "спасибо" всяким прогам по открытию VBA паролей.
...
Рейтинг: 0 / 0
Удаление макросом VBA себя самого или своего модуля
    #33645586
GoldenAxe
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ashton GoldenAxeВНИМАНИЕ ВОПРОС!
Как программным методом (кодами в начале макроса) изменить параметры безопасности и установить соответствующую галочку?
За уровень безопасности отвечает параметр "Level" раздела реестра "HKEY_CURRENT_USER\\Software\\Microsoft\\Office\\11.0\\Excel\\Security" (для Office 2003).

За доверительный доступ отвечает параметр "AccessVBOM" того же раздела.

Уровень безопасности в начале выполнения макроса изменить нельзя. Собственно, что выполнять, если макросы отключены. Его можно изменить из внешнего приложения или скрипта. Этот вопрос обсуждался здесь.

Во! Мы близки к развязке!
Но!
после написания такого:

Sub pop()
\' Меняем доверие
On Error Resume Next

Dim objShell
Dim vatReturn

Set objShell = CreateObject("WScript.Shell")

vatReturn = objShell.RegRead( _
"HKEY_CURRENT_USER\\Software\\Microsoft\\Office\\11.0\\Excel\\Security\\AccessVBOM")
MsgBox vatReturn

objShell.RegWrite _
"HKEY_CURRENT_USER\\Software\\Microsoft\\Office\\11.0\\Excel\\Security\\AccessVBOM", _
1, "REG_DWORD"
MsgBox vatReturn
\' удаляем все строки в Модуле 1
With ThisWorkbook.VBProject.VBComponents("Module1").CodeModule
.DeleteLines 1, .CountOfLines
End With

End Sub


Даже когда сначала выдает значение парамерта "0", затем меняет его на "1", все равно галочка не появляется и модуль не стирается... только когда вручную вставишь галочку в поле Доверять доступ к VB Project только тогда макрос удалит модуль1...
Т.е. в реестре меняется. а на деле ничего не происходит, даже после перезапуска Excel...
...
Рейтинг: 0 / 0
Удаление макросом VBA себя самого или своего модуля
    #33645650
Nikz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А если вот такой дикий вариант:

Делаете в VB6 ActiveX Dll.
В нем пишете код для макроса.
регистрируете Dll в системе.
затем в Excel подключаете эту dll, и запускаете в ней процедуру с вашим кодом.

А в самой dll можно втыкать любые проверки на исполнение макроса, подломать их будет достаточно сложно...

см аттач.
...
Рейтинг: 0 / 0
Удаление макросом VBA себя самого или своего модуля
    #33645653
Nikz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
аттач:
...
Рейтинг: 0 / 0
Удаление макросом VBA себя самого или своего модуля
    #33645671
GoldenAxe
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Артем GИнтересно... раз мешает пароль может на каком то этапе его прогрмно убрать?

Интересная идея... А как можно макросом отключить свой собственный пароль? Есть мысли?
...
Рейтинг: 0 / 0
Удаление макросом VBA себя самого или своего модуля
    #33645683
GoldenAxe
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
NikzА если вот такой дикий вариант:

Делаете в VB6 ActiveX Dll.
В нем пишете код для макроса.
регистрируете Dll в системе.
затем в Excel подключаете эту dll, и запускаете в ней процедуру с вашим кодом.

А в самой dll можно втыкать любые проверки на исполнение макроса, подломать их будет достаточно сложно...

см аттач.

Это довольно сложно... в смысле заставить юзверя сначала Dll регистрировать ... дело в том, что изначальная задача - упростить жизнь простым смертным, которые не знают даже как поменять уровень безопасности, ну а как прописать dll в систему им точно не по-зубам...
...
Рейтинг: 0 / 0
Удаление макросом VBA себя самого или своего модуля
    #33645773
Nikz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GoldenAxe NikzА если вот такой дикий вариант:

Делаете в VB6 ActiveX Dll.
В нем пишете код для макроса.
регистрируете Dll в системе.
затем в Excel подключаете эту dll, и запускаете в ней процедуру с вашим кодом.

А в самой dll можно втыкать любые проверки на исполнение макроса, подломать их будет достаточно сложно...

см аттач.

Это довольно сложно... в смысле заставить юзверя сначала Dll регистрировать ... дело в том, что изначальная задача - упростить жизнь простым смертным, которые не знают даже как поменять уровень безопасности, ну а как прописать dll в систему им точно не по-зубам...

а что мешает повесить в Workbook_Open() автоматическую регистрацию dll
Код: plaintext
1.
2.
3.
4.
5.
Private Sub Workbook_Open()

Shell "regsvr32 /s " & ThisWorkbook.Path & "\Project1.dll", vbHide

End Sub
...
Рейтинг: 0 / 0
Удаление макросом VBA себя самого или своего модуля
    #33645846
GoldenAxe
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Nikz
а что мешает повесить в Workbook_Open() автоматическую регистрацию dll
Код: plaintext
1.
2.
3.
4.
5.
Private Sub Workbook_Open()

Shell "regsvr32 /s " & ThisWorkbook.Path & "\Project1.dll", vbHide

End Sub


Хмм... я об этом не подумал...
А можно опубликовать что конкретно должно находиться в dll чтобы я смог удалить один из модулей? Я просто с dll никогда не связывался...
Если это возможно - киньте примерчик такой библиотеки на мыло или тут выложите... goldenaxxe@mail.ru
А если возможно - то пару xls + dll которые взаимодействуют друг с другом...
...
Рейтинг: 0 / 0
Удаление макросом VBA себя самого или своего модуля
    #33645918
Nikz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
относительно простых у меня к сожалению нет
есть пара проектов, но это так сказать "вещи в себе", они запускаются только при куче установленного специализированного софта (для которого они собственно и писались, как раз по той же причине - для защиты кода, потому что базовые знания у юзеров VB+advanced office password recovery и прощай деньги за пару месяцев кодописания)
так что боевой пример выслать не могу
но чуть выше лежит простенький пример
в книге excel образец того как вызвать эту dll
в проекте VB одна процедура runMacro
в нее excel передает свой application
в этой процедуре пишете все то же самое что и в модуле в excel, только не забывайте указывать к какому приложению excel относятся эти действия.
то есть если в excel было написано
Код: plaintext
Cells( 1 , 1 )= 123 
то в dll надо написать
Код: plaintext
xApp.Cells( 1 , 1 )= 123 
то есть в принципе можно прямо скопировать модуль из excel, и только подставлять xApp там где вы обращаетесь к текущему приложению excel
...
Рейтинг: 0 / 0
Удаление макросом VBA себя самого или своего модуля
    #33646217
Фотография k-nike
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GoldenAxe k-nikeКак вариант.
А если в начале макроса делать проверку и не выполнять его просто по определенному условию?

Да это как раз не вариант... Елси просто не запустить макрос - его тело останется без изменений, и если в него влезть - можно просто убрать эту проверку и прога заработает. А влезть даже в запароленый макрос - не проблема... "спасибо" всяким прогам по открытию VBA паролей.
Не хочу показаться пессимистом, но:
1. Если юзер чайник, то навряд ли он может что-то изменить.
2. А если он маломальски в этом разбирается (по крайней мере, знает про программы, которые вскрывают VBA-пароли), то ему не составит труда вскрыть файл еще до того как закончится срок действия макросов или элементарно скопировать этот файл.

Тут на форуме тусуется человек, который продает VBA-пректы. У него бы поинтересоваться как их защищать, если это, конечно, не секретная информация. Кажется его MXAlex зовут или как-то так.

Может лучше тогда это дело на VB переписать?
...
Рейтинг: 0 / 0
Удаление макросом VBA себя самого или своего модуля
    #33646269
GoldenAxe
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А можно с помощью VBA имитировать нажатия клавишь?
и программно просто последовательно нажимая виртуальные клавиши поставить эту галочку «Доверять доступ к Visual Basic Project» ?
или с помощью запущенной VBA стандартной Экранной клавиатурой (Главное меню\Программы\Стандартные\Специальные возможности\Экранная клавиатура)

Вот еще:
Я писал что с помощью ключа
objShell.RegWrite _
"HKEY_CURRENT_USER\Software\Microsoft\Office\11.0\Excel\Security\AccessVBOM", _
1, "REG_DWORD"

я менял параметр AccessVBOM, который в реестре менялся, а в Excel - нет.
Я попробовал руками поменять параметр AccessVBOM в реестре - и тоже в Excel ничего не поменялось!!! НО!!! если Excel закрыт - то поменяв этот параметр при следующем запуске Excel галочка ПОЯВЛЯЕТСЯ!!! Т.е. надо чтоб скрипт сработал при закрытом Экселе!!! Как это можно сделать? Может макрос закрыть Excel и продолжать работать из оперативной памяти?
...
Рейтинг: 0 / 0
Удаление макросом VBA себя самого или своего модуля
    #33646305
GoldenAxe
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
k-nike
Не хочу показаться пессимистом, но:
1. Если юзер чайник, то навряд ли он может что-то изменить.
2. А если он маломальски в этом разбирается (по крайней мере, знает про программы, которые вскрывают VBA-пароли), то ему не составит труда вскрыть файл еще до того как закончится срок действия макросов или элементарно скопировать этот файл.

Тут на форуме тусуется человек, который продает VBA-пректы. У него бы поинтересоваться как их защищать, если это, конечно, не секретная информация. Кажется его MXAlex зовут или как-то так.

Может лучше тогда это дело на VB переписать?

Согласен, но согласитесь, чаще всего мы начинаем лезть в программу только тогда, когда она ломается... Мне например и нафиг не надо знать как работает чужой макрос, если он работает... я туда полезу только если меня что-то не устроит... На это я и расчитываю... что когда юзер будет пользовать мою прогу - она будет работать и мыслей туда лазить у него не возникнет, а когда истечет срок годности - и лазить будет некуда %))
По поводу написания такой проги на других языках - можно, но это будет уже 2 файла, один ехе и один xls(в котором всякие исходники для каждого конкретного запуска)... а это дополнительные трудности для распространения.
...
Рейтинг: 0 / 0
Удаление макросом VBA себя самого или своего модуля
    #33648520
Avtopic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Чем меньше будем верить умным советам, тем больше будем тратить драгоценное время:

White Owl GoldenAxeВНИМАНИЕ ВОПРОС!
Как программным методом (кодами в начале макроса) изменить параметры безопасности и установить соответствующую галочку?
Никак. Абсолютно.
White Owl GoldenAxeСлышал еще такое:
Что если проект имеет цифровую подпись MicroSoft то даже эта галочка не нужна, т.к. в таком случае Excel воспринемает эту прогу как "свою родную" и разрешает любые манипуляции с макросом самим макросом.
Нет.
"Подписаная" и сконвертированная в add-on книга сможет только запускать имеющиеся в ней макросы без требования к пользователю включить поддержку макросов для этой книги. Но модифицировать макросы она все равно не сможет если пользователь не разрешит.
...
Рейтинг: 0 / 0
Удаление макросом VBA себя самого или своего модуля
    #33652963
GoldenAxe
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
White Owl GoldenAxeВНИМАНИЕ ВОПРОС!
Как программным методом (кодами в начале макроса) изменить параметры безопасности и установить соответствующую галочку?
Никак. Абсолютно.

Короче!
Все те, кто заявляет так категорично - могут отдыхать!
По поводу уровня защиты - программно поменять можно, только окно Экселя должно быть закрыто. Скрипт сюда выкладывать не буду (лично - могу послать)
По поводу галочки доверия доступа к VBA проектам - ставится и убирается программно "на раз" прямо на глазах пользователя и без его участия!!! И никаких гвоздей.
И вообще после пары дней усиленного штудирования литературы и хелпов к VBA могу сказать одно: ТАМ МОЖНО ВСЕ, ВПЛОТЬ ДО УНИЧТОЖЕНИЯ ВСЕХ ДИСКОВ ВКЛЮЧАЯ СИСТЕМНЫЙ!!!
А те, кто "где-то" "что-то" слышал про невозможность это сделать - ИДИТЕ ЛЕСОМ, УЧИТЕ МАТЧАСТЬ!!!
Мной написаны коды, которые могут по определенному условию уничтожать саму рабочую книгу, все модули и макросы в ней, даже если макрос защищен паролем! а также, в случае необходимости, уничтожать свои уцелевшие копии на этом компе и на компах в сети.
...
Рейтинг: 0 / 0
Удаление макросом VBA себя самого или своего модуля
    #33653160
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GoldenAxe White Owl GoldenAxeВНИМАНИЕ ВОПРОС!
Как программным методом (кодами в начале макроса) изменить параметры безопасности и установить соответствующую галочку?
Никак. Абсолютно.
Короче!
Все те, кто заявляет так категорично - могут отдыхать!
По поводу уровня защиты - программно поменять можно, только окно Экселя должно быть закрыто.Повнимательнее читай что сам пишешь.
Если окно Экселя закрыто. Еще надо было добавить: и если Эксель не висит в памяти в режиме горячего демона, то да можно будет поменять параметры безопасности не через меню Экселя.
Из макроса это сделать невозможно.

GoldenAxeПо поводу галочки доверия доступа к VBA проектам - ставится и убирается программно "на раз" прямо на глазах пользователя и без его участия!!! И никаких гвоздей.Можно? Правда? Показывай. Не хочешь публично - мой емыл в профайле есть :)
...
Рейтинг: 0 / 0
Удаление макросом VBA себя самого или своего модуля
    #33653722
Avtopic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Помнится как то автор начинал вопрос с этого кода и по моему, это код VBA???
GoldenAxeSub DeleteAllLines() ' удаляет все что написано в Модуле1
With ThisWorkbook.VBProject.VBComponents("Module1").CodeModule
.DeleteLines 1, .CountOfLines
End With
End sub
*******************
Sub DeleteModule() ' удаляет сам Модуль1
Dim vbc As VBComponent
Set vbc = ThisWorkbook.VBProject.VBComponents("Module1")
ThisWorkbook.VBProject.VBComponents.Remove vbc
Set vbc = Nothing
End sub
*******************
Sub DeleteModule() ' удаляет весь макрос
Dim tmp As String
Dim vbc As VBComponent
Dim prj As VBIDE.VBE

Set prj = Excel.Application.VBE
А если потом передумал, то конечно, компьютер работает под программу, и разные вирусы пишутся как обыкновенные программы, и форматирование идет программно, Но все это, не изменение уровня зашиты в Excele с помощью кода VBA

О чем писал автор:
GoldenAxeКак программным методом (кодами в начале макроса) изменить параметры безопасности и установить соответствующую галочку?
...
Рейтинг: 0 / 0
Удаление макросом VBA себя самого или своего модуля
    #33655102
GoldenAxe
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
[/quot]Можно? Правда? Показывай. Не хочешь публично - мой емыл в профайле есть :)[/quot]
Послал лично...
...
Рейтинг: 0 / 0
Удаление макросом VBA себя самого или своего модуля
    #33655441
GoldenAxe
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AvtopicПомнится как то автор начинал вопрос с этого кода и по моему, это код VBA???
GoldenAxeSub DeleteAllLines() ' удаляет все что написано в Модуле1
With ThisWorkbook.VBProject.VBComponents("Module1").CodeModule
.DeleteLines 1, .CountOfLines
End With
End sub
*******************
Sub DeleteModule() ' удаляет сам Модуль1
Dim vbc As VBComponent
Set vbc = ThisWorkbook.VBProject.VBComponents("Module1")
ThisWorkbook.VBProject.VBComponents.Remove vbc
Set vbc = Nothing
End sub
*******************
Sub DeleteModule() ' удаляет весь макрос
Dim tmp As String
Dim vbc As VBComponent
Dim prj As VBIDE.VBE

Set prj = Excel.Application.VBE
А если потом передумал, то конечно, компьютер работает под программу, и разные вирусы пишутся как обыкновенные программы, и форматирование идет программно, Но все это, не изменение уровня зашиты в Excele с помощью кода VBA

О чем писал автор:
GoldenAxeКак программным методом (кодами в начале макроса) изменить параметры безопасности и установить соответствующую галочку?

Да, это код VBA, а что не устраивает? И именно программным методом именно с помощью кода VBA ставится галочка Доверия доступа к VBP. И именно с помощью VBA можно поменять уровни безопасности, главное чтоб юзер хоть один раз запустил макрос...
...
Рейтинг: 0 / 0
Удаление макросом VBA себя самого или своего модуля
    #33656872
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GoldenAxeПослал лично...хм.....
Почти убедил.
Минусы твоего конкретного макроса:
- Не будет работать на Экселях других версий.
- Не будет работать на не русских Экселях.
Но в принципе, да. Если этот макрос разрешить хотя бы один раз - он сделает то что нужно.

Но главный минус - программная смена уровня безопасности потенциально вирусоопасна. Как только до твоего трюка додумается очередной кретин-вирусописатель этот трюк будет включен в базы антивирусов и твоя ЧЕСТНАЯ рабочая книга начнет считаться вирусом :)

Лучше всего, класть инструкцию по смене уровня безопасности в дистрибутив программы.
...
Рейтинг: 0 / 0
25 сообщений из 47, страница 1 из 2
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Удаление макросом VBA себя самого или своего модуля
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]