Тема: Удаления системных команд из контекстного меню объектов TDMS

1    Краткое описание
Функция RemoveMenuItem() с использованием события ContextMenu_ItemAdd() позволяет убирать системные команды из контекстного меню объекта.

2    Основная часть
Для удаления системных команд из контекстного меню объектов TDMS добавьте вызов функции RemoveMenuItem в обработчик события ContextMenu_ItemAdd

Sub ContextMenu_ItemAdd(cmdId, MenuObject, Obj, Remove)
  Remove = RemoveMenuItem(cmdId,MenuObject,Obj,0,"OBJECTS")
'  Remove = RemoveMenuItem(cmdId,MenuObject,Obj,18661,"OBJECT_C883F672_E2D2_4246_8C61_5F0C8056B457")
End Sub
' Функция определяет необходимость удаления элемента системного контекстного меню
'---------------------------------------------------------------------------------------------------
' id_:string         - идентификатор команды, которую надо удалить. =0 - удаляем все
' sysname_:string    - идентификатор типа объекта, который необходимо удалить из 
'                      системного подменю. Например "Создать\<удаляемый тип объекта>"
'                      ="OBJECTS" - удаляем все
' RemoveMenu:boolean - true - удалить; false - не удалять
'---------------------------------------------------------------------------------------------------
Function RemoveMenuItem(cmdId_,MenuObject_,Obj_,id_,sysname_)
  ' Проверяем, что это выпадающее вертикальное подменю
  If not MenuObject_ is Nothing Then
    SysName = MenuObject_.SysName
    ' Проверяем, требуется ли удаление из меню определенного типа объекта
    If StrComp(sysname_, SysName, vbTextCompare) = 0 or sysname_="OBJECTS" Then
      RemoveMenuItem = True
    End If
  Else
    ' Проверяем, требуется ли удаление из меню системной команды
    If cmdId_ = id_ or id_=0 Then
      RemoveMenuItem = True
    End If
  End If
End Function

После выключения всех этих команд, в контекстном меню остаются следующие команды: "Создать", "Добавить ссылку", "Добавить копию", "Найти", которые можно отключить профилем.

3    Вывод
Данная функция может понадобиться, когда требуется наложить дополнительные запреты на выполнения системных команд из контекстного меню, которые не решаются настройкой статуса, ролей и профиля.

4.    Коды системных команд в контекстном меню:
18572 - Сохранить
18571 - Сохранить и закрыть
18573 - Отменить редактирование
18517 - Создать выборку
18597 - Добавить выборку
18883 - Копировать ссылку
18884 - Вставить
18516 - Дублировать
18590 - Удалить
18690 - Обновить
18598 - Переместить вверх
18599 - Переместить вниз
18591 - Переместить в...
18575 - Сохранить файлы в базу данных
18594 - На рабочий стол
18900 - Следующее вхождение
18814 - Послать как вложение
24000 - Подписать
18631 - Создать новую версию
18660 - Права доступа
18661 – Свойства

Спасибо сказали: Дамир1