Сообщество программистов Autodesk в СНГ
ADN Club => AutoCAD .NET API => Тема начата: Вильдар от 23-06-2018, 19:53:50
-
Как проверить что автокад закрывается?
Нужно проверить до закрытия чертежей и Terminate приложений.
Вроде было что-то такое. Найти не могу.
Заранее спасибо! :-* ;D
-
Например, Application.BeginQuit
-
Не подходит :(
Оно после закрытия чертежей происходит.
-
А Application.BeginCloseAll ?
-
Не вижу такого события Application.BeginCloseAll.
Автокад 2017.
-
Не подходит :(
Оно после закрытия чертежей происходит.
А ты не путаешь? В этом событии можно вызвать Veto() и тогда AutoCAD не должен закрываться.
-
Не вижу такого события Application.BeginCloseAll.
Автокад 2017.
Да. В 2017-ом его нет. Разве что отлавливать поштучное закрытие окон (Document.CloseWillStart).
-
Еще можно попробовать через ActiveX/COM событие: AcadApplication.BeginQuit
-
Хочу сделать штуку по восстановлению открытых чертежей. Как вкладки у браузера при старте.
Да, события закрытия приложения происходят после событий закрытия чертежей.
Вот тут тоже так http://drive-cad-with-code.blogspot.com/2011/10/about-terminate-method-of.html:
Document C:\Users\norm\Documents\Drawing3.dwg closing begins
Document C:\Users\norm\Documents\Drawing3.dwg closing begins
Document C:\Users\norm\Documents\Drawing3.dwg is about to be destroyed
Database in document C:\Users\norm\Documents\Drawing3.dwg is about to be destroyed
Document C:\Users\norm\Documents\Drawing3.dwg has been destroyed
Document C:\Users\norm\Documents\Drawing2.dwg closing begins
Document C:\Users\norm\Documents\Drawing2.dwg closing begins
Document C:\Users\norm\Documents\Drawing2.dwg is about to be destroyed
Database in document C:\Users\norm\Documents\Drawing2.dwg is about to be destroyed
Document C:\Users\norm\Documents\Drawing2.dwg has been destroyed
Document C:\Users\norm\Documents\Drawing1.dwg closing begins
Document C:\Users\norm\Documents\Drawing1.dwg closing begins
Document C:\Users\norm\Documents\Drawing1.dwg is about to be destroyed
Database in document C:\Users\norm\Documents\Drawing1.dwg is about to be destroyed
Document C:\Users\norm\Documents\Drawing1.dwg has been destroyed
Quiting Autodesk begins
Autodesk is about to quit
Terminate() is called
Document count is 0
Form1 is disposed, but its reference is still alive
Form2 has not been disposed
Terminate() call is completed
-
Хочу сделать штуку по восстановлению открытых чертежей. Как вкладки у браузера при старте.
Т.е. фактически ты хочешь записать перечень открытых в AutoCAD документов в момент его завершения?
Тогда можешь отловить событие DocumentCollection.DocumentLockModeChanged с глобальным именем команды QUIT. Эта команда запускается и в случае если ты нажимаешь на крестик, закрывая AutoCAD, и если запускаешь команду _QUIT или _EXIT. Отдельно нужно бы обработать ситуацию с аварийным завершением AutoCAD. Но тут вопрос спорный - нужно ли открывать файлы, которые возможно привели к аварийному завершению AutoCAD...
-
Вроде подходит событие запуска команды "QUIT".
Пока его использую.
-
Во супер. Все по полочкам.
Про аврарийность - будет окошко выбора открываемых чертежей.
Пока задумка такая. Многие просят.
Если будет нестабильно работать, то уберу совсем.
Спасибо большое!
-
Вроде подходит событие запуска команды "QUIT".
Пока его использую.
Ты про Document.CommandWillStart ? Но на него нужно подписываться в каждом открытом документе, что не очень практично.
-
Про аврарийность - будет окошко выбора открываемых чертежей.
Или что-то типа кнопочки для восстановления предыдущей сессии AutoCAD.
-
Да, посмотрим как лучше будет. На всех не угодишь.
Спасибо про заметку что событие CommandWillStart в каждом чертеже, а DocumentLockModeChanged общий.
Чуть не упустил это.
-
Можешь еще поиграться с MGDDBG - он подскажет какие еще события возникают при попытке завершения AutoCAD:
QUIT
[Doc Mgr Event] : Document Lock Mode Will Change : Drawing2.dwg
Global Command Name : QUIT
Current Mode : NotLocked
My Current Mode : NotLocked
My New Mode : Write
[Doc Mgr Event] : Document Lock Mode Changed : Drawing2.dwg
Global Command Name : QUIT
Current Mode : Write
My Current Mode : NotLocked
My Previous Mode : Write
[Doc Event] : Command will Start : QUIT
[Doc Mgr Event] : Document Activation Changed : False
[Doc Mgr Event] : Document Activation Changed : True
[Doc Event] : Command Ended : QUIT
[Doc Mgr Event] : Document Lock Mode Will Change : Drawing2.dwg
Global Command Name : #QUIT
Current Mode : Write
My Current Mode : Write
My New Mode : NotLocked
[Doc Mgr Event] : Document Lock Mode Changed : Drawing2.dwg
Global Command Name : #QUIT
Current Mode : NotLocked
My Current Mode : Write
My Previous Mode : NotLocked