Выгрузка меню, распространяющаяся в т.ч. и на последующие сессии

Автор Тема: Выгрузка меню, распространяющаяся в т.ч. и на последующие сессии  (Прочитано 5303 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Андрей БушманАвтор темы

  • ADN Club
  • *****
  • Сообщений: 2000
  • Карма: 163
  • Пишу программки...
    • Блог
  • Skype: Compositum78
AutoCAD 2009 x64 SP3 Enu

Загрузка меню в AutoCAD, выполненная посредством метода MenuGroups.Load(file_name), приводит к тому, что подгруженное меню будет оставаться подгруженным и во всех последующих сессиях AutoCAD. Однако, в то же время, метод MenuGroup.Unload() выгружает меню только для текущей сессии. После перезагрузки AutoCAD выгруженное меню снова окажется подгруженным. Такая разница в поведении мне кажется несколько не логичной...

Дабы выгрузка меню применялась и ко всем последующим сессиям работы AutoCAD - я дополнительно выполняю выгрузку соответствующего частичного меню в т.ч. и из CUI\CUIX файла основного меню (но уже при помощи API, предоставленного в CUI.dll).

Вопрос
Может я всё же изобретаю велосипед и в COM API так же можно выгружать меню так, чтобы оно не подгружалось в последующих сессиях AutoCAD?

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Однако, в то же время, метод MenuGroup.Unload() выгружает меню только для текущей сессии. После перезагрузки AutoCAD выгруженное меню снова окажется подгруженным.
Я правильно понимаю, что речь идёт об частичном меню? Тогда по логике необходимо пересохранить текущий WORKSPACE. Насколько я помню, сделать это через COM/ActiveX нельзя. Только командными методами. Это если речь идёт об AutoCAD 2009. Вообще же для современных версий есть методы Application.LoadPartialMenu и Application.UnloadPartialMenu
Кстати (я не проверял), но возможно поможет системная переменная WSAUTOSAVE для автоматического сохранения WORKSPACE.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Андрей БушманАвтор темы

  • ADN Club
  • *****
  • Сообщений: 2000
  • Карма: 163
  • Пишу программки...
    • Блог
  • Skype: Compositum78
Вообще же для современных версий есть методы Application.LoadPartialMenu и Application.UnloadPartialMenu
Я указал интересующую меня версию AutoCAD. Ясно, спасибо, значит буду продолжать использовать обозначенное мною выше обходное решение, тем более что оно работает и во всех более новых версиях AutoCAD (т.е. править код не придётся).