Сообщество программистов Autodesk в СНГ
ADN Club => AutoCAD .NET API => Тема начата: Андрей Бушман от 01-07-2016, 22:15:43
-
AutoCAD 2009 x64 SP3 Enu
Загрузка меню в AutoCAD, выполненная посредством метода MenuGroups.Load(file_name), приводит к тому, что подгруженное меню будет оставаться подгруженным и во всех последующих сессиях AutoCAD. Однако, в то же время, метод MenuGroup.Unload() выгружает меню только для текущей сессии. После перезагрузки AutoCAD выгруженное меню снова окажется подгруженным. Такая разница в поведении мне кажется несколько не логичной...
Дабы выгрузка меню применялась и ко всем последующим сессиям работы AutoCAD - я дополнительно выполняю выгрузку соответствующего частичного меню в т.ч. и из CUI\CUIX файла основного меню (но уже при помощи API, предоставленного в CUI.dll).
Вопрос
Может я всё же изобретаю велосипед и в COM API так же можно выгружать меню так, чтобы оно не подгружалось в последующих сессиях AutoCAD?
-
Однако, в то же время, метод MenuGroup.Unload() выгружает меню только для текущей сессии. После перезагрузки AutoCAD выгруженное меню снова окажется подгруженным.
Я правильно понимаю, что речь идёт об частичном меню? Тогда по логике необходимо пересохранить текущий WORKSPACE. Насколько я помню, сделать это через COM/ActiveX нельзя. Только командными методами. Это если речь идёт об AutoCAD 2009. Вообще же для современных версий есть методы Application.LoadPartialMenu и Application.UnloadPartialMenu
Кстати (я не проверял), но возможно поможет системная переменная WSAUTOSAVE для автоматического сохранения WORKSPACE.
-
Вообще же для современных версий есть методы Application.LoadPartialMenu и Application.UnloadPartialMenu
Я указал интересующую меня версию AutoCAD. Ясно, спасибо, значит буду продолжать использовать обозначенное мною выше обходное решение, тем более что оно работает и во всех более новых версиях AutoCAD (т.е. править код не придётся).