Сообщество программистов Autodesk в СНГ

ADN Club => AutoCAD .NET API => Тема начата: Doublefish от 24-07-2015, 08:45:31

Название: Как отличить что acad.exe запускается пользователем или в фоне для публикации?
Отправлено: Doublefish от 24-07-2015, 08:45:31
Добрый день
Подскажите пожалуйста, как отличить, что acad.exe запускается пользователем и на экране окно автокада активно или acad.exe запускается пользователем в фоне при печати (публикации)?
Название: Re: Как отличить что acad.exe запускается пользователем или в фоне для публикации?
Отправлено: Александр Ривилис от 24-07-2015, 09:38:49
В основном всё описано в этой статье: http://adndevblog.typepad.com/autocad/2012/08/how-to-detect-when-autocad-is-running-for-a-background-plot.html
В .NET строку запуска можно получить при помощи методов Environment.CommandLine и Environment.GetCommandLineArgs
Я нашёл, что признаком может служить еще опции /print и /Automation в командной строке запуска AutoCAD:

(https://adn-cis.org/forum/proxy.php?request=http%3A%2F%2Fimg-fotki.yandex.ru%2Fget%2F3211%2F7842324.4%2F0_102eb4_78e0a0d1_orig.png&hash=27540960a0c77c3c151010d925ce2c12)
Название: Re: Как отличить что acad.exe запускается пользователем или в фоне для публикации?
Отправлено: Александр Ривилис от 24-07-2015, 12:07:54
А такая картинка будет если запускать _PLOT или _PUBLISH изнутри AutoCAD при BACKGROUNDPLOT отличной от 0:

(https://adn-cis.org/forum/proxy.php?request=http%3A%2F%2Fimg-fotki.yandex.ru%2Fget%2F6516%2F7842324.4%2F0_102eb5_f2edaabd_orig.png&hash=c185383392ef87efe20aecdd8aa23486)

Это запускается второй (дополнительный экземпляр AutoCAD):

(https://adn-cis.org/forum/proxy.php?request=http%3A%2F%2Fimg-fotki.yandex.ru%2Fget%2F15512%2F7842324.4%2F0_102eb6_4157eb42_orig.png&hash=9b73cb09b57b5387eaaf3ac516c5050e)
Название: Re: Как отличить что acad.exe запускается пользователем или в фоне для публикации?
Отправлено: Дима_ от 24-07-2015, 13:16:04
Не проверял, но первое, на что бы посмотрел это значение Application.Visible.
Название: Re: Как отличить что acad.exe запускается пользователем или в фоне для публикации?
Отправлено: Александр Ривилис от 24-07-2015, 13:21:04
Не проверял, но первое, на что бы посмотрел это значение Application.Visible.
Это может быть необходимым, но недостаточным условием для того, чтобы убедиться что AutoCAD запущен для фоновой печати/публикации. Кроме того, любое из приложений, запускаемых вместе с AutoCAD может (!!!) установить Application.Visible в True. Так что не факт...