Событие или проверка закрытия автокада

Автор Тема: Событие или проверка закрытия автокада  (Прочитано 16463 раз)

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

Тема содержит сообщение с Решением. Нажмите здесь чтобы посмотреть его.

Оффлайн ВильдарАвтор темы

  • ADN Club
  • ****
  • Сообщений: 409
  • Карма: 77
  • Skype: vildar82
Как проверить что автокад закрывается?
Нужно проверить до закрытия чертежей и Terminate приложений.
Вроде было что-то такое. Найти не могу.
Заранее спасибо!  :-*  ;D

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

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Например, Application.BeginQuit
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн ВильдарАвтор темы

  • ADN Club
  • ****
  • Сообщений: 409
  • Карма: 77
  • Skype: vildar82
Не подходит  :(
Оно после закрытия чертежей происходит.

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

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
А Application.BeginCloseAll ?
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн ВильдарАвтор темы

  • ADN Club
  • ****
  • Сообщений: 409
  • Карма: 77
  • Skype: vildar82
Не вижу такого события Application.BeginCloseAll.
Автокад 2017.

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

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Не подходит  :(
Оно после закрытия чертежей происходит.
А ты не путаешь? В этом событии можно вызвать Veto() и тогда AutoCAD не должен закрываться.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Не вижу такого события Application.BeginCloseAll.
Автокад 2017.
Да. В 2017-ом его нет. Разве что отлавливать поштучное закрытие окон (Document.CloseWillStart).
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Еще можно попробовать через ActiveX/COM событие: AcadApplication.BeginQuit
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн ВильдарАвтор темы

  • ADN Club
  • ****
  • Сообщений: 409
  • Карма: 77
  • Skype: vildar82
Хочу сделать штуку по восстановлению открытых чертежей. Как вкладки у браузера при старте.

Да, события закрытия приложения происходят после событий закрытия чертежей.
Вот тут тоже так 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

Отмечено как Решение Вильдар 23-06-2018, 21:25:34

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

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Хочу сделать штуку по восстановлению открытых чертежей. Как вкладки у браузера при старте.
Т.е. фактически ты хочешь записать перечень открытых в AutoCAD документов в момент его завершения?
Тогда можешь отловить событие DocumentCollection.DocumentLockModeChanged с глобальным именем команды QUIT. Эта команда запускается и в случае если ты нажимаешь на крестик, закрывая AutoCAD, и если запускаешь команду _QUIT или _EXIT. Отдельно нужно бы обработать ситуацию с аварийным завершением AutoCAD. Но тут вопрос спорный - нужно ли открывать файлы, которые возможно привели к аварийному завершению AutoCAD...
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн ВильдарАвтор темы

  • ADN Club
  • ****
  • Сообщений: 409
  • Карма: 77
  • Skype: vildar82
Вроде подходит событие запуска команды "QUIT".
Пока его использую.

Оффлайн ВильдарАвтор темы

  • ADN Club
  • ****
  • Сообщений: 409
  • Карма: 77
  • Skype: vildar82
Во супер. Все по полочкам.
Про аврарийность - будет окошко выбора открываемых чертежей.
Пока задумка такая. Многие просят.
Если будет нестабильно работать, то уберу совсем.
Спасибо большое!

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

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Вроде подходит событие запуска команды "QUIT".
Пока его использую.
Ты про Document.CommandWillStart ? Но на него нужно подписываться в каждом открытом документе, что не очень практично.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Про аврарийность - будет окошко выбора открываемых чертежей.
Или что-то типа кнопочки для восстановления предыдущей сессии AutoCAD.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн ВильдарАвтор темы

  • ADN Club
  • ****
  • Сообщений: 409
  • Карма: 77
  • Skype: vildar82
Да, посмотрим как лучше будет. На всех не угодишь.
Спасибо про заметку что событие CommandWillStart в каждом чертеже, а DocumentLockModeChanged общий.
Чуть не упустил это.