Тема: Обработка события коммандной строки

Здравствуйте. Я не знаю VBA и разбираться в нем некогда. Стоит такая задача: обработать команды коммандной строки, например: если пользователь ввел команду "_copyclip" - выдать сообщение "команда заблокирована" и не производить копирование и т.д.
Если можно приведите какой нибудь шаблон кода на VBA.
Заранее спасибо.

Re: Обработка события коммандной строки

https://www.caduser.ru/forum/topic41543.html

Re: Обработка события коммандной строки

> alex
Вот тебе один из шаблонов (есть и другие способы):
Нажать комбинацию клавиш Alt+F11 -> VBA Redactor (VBAIDE),
в поле редактора в левом верхнем углу выбрать из списка
AcadDocument
Автоматически сгенерированный код, который
появится в окне редактора нужно заменить на следующий:

Option Explicit
Private Sub AcadDocument_BeginCommand(ByVal CommandName As String)
If CommandName = "COPYCLIP" Then
MsgBox "Команда " & CommandName & " в данном документе недоступна" &
vbCr & _
       "Повторная попытка приведет к удалению документа", vbExclamation,
"Предупреждение!"
Me.SendCommand Chr(27) & Chr(27) & Chr(27)
End If
End Sub

Затем в меню редактора:
Tools->Project properties -> Property name: написать CC
Закрыть редактор
Закрыть документ, при закрытии появится окно запроса
на сохранение проекта, нужно нажать кнопку "Yes"
и в другом окне диалога выбрать директорию для сохранения
проекта с именем "CC.dvb" и сохранить проект.
Открыть документ снова.
В меню Автокада Tools->Load Application:
В окне загрузки в области StartUp Suit нажать кнопку "Contents"
и в новом окне нажать кнопку "Add", выбрать сохраненный проект
"CC.dvb", нажать кнопку "Add", затем кнопку "Close"
Закрыть диалоговое окно приложений
Теперь при каждой загрузке документа одновременно
будет загружаться проект "CC.dvb"
~'J'~

Re: Обработка события коммандной строки

Большое спасибо!

Re: Обработка события коммандной строки

> Fatty
Приведенный Вами код сработает, если пользователь испугается предупреждения: "Повторная попытка приведет к удалению документа".
Если примитив выделен, то команда "COPYCLIP" все равно срабатывает после закрытия диалогового окна - данные копируются в буфер обмена.

Re: Обработка события коммандной строки

Может можно как нибудь запретить команду на Lisp? Мне нужно защитить рисунок от пользователя: нужно чтобы не работали команды "копировать" и "сохранить как".

Re: Обработка события коммандной строки

> alex
См. Help -> Redefine
Переопредели команду с другим именем,
никто кроме тебя его не будет знать
Только не забудь восстановить когда это
уже будет не актуально
~'J'~

Re: Обработка события коммандной строки

Насколько я знаю комманда с точкой (например: _.copyclip) все равно будет работать