Тема: как закрыть автоматически вместе с AutoCAD приложение?

С помощью "STARTAPP" запускаю в LISP "ХХХ.exe" приложение. А как его закрыть автоматически вместе с AutoCAD не знаю. Не подскажите?

Re: как закрыть автоматически вместе с AutoCAD приложение?

А разве приложение автокада не выгружается вместе с автокадом?

Re: как закрыть автоматически вместе с AutoCAD приложение?

1.Это приложение, назовём его "ABC.exe" работает независимо от AutoCADa, как например, "Notepad". И если закрыть AutoCAD, "Notepad" остаётся открытым.
2.По ходу ещё один вопрос:"Как тот-же "Notepad" сделать VLA-обьектом?"

Re: как закрыть автоматически вместе с AutoCAD приложение?

Я немного программирую на VBA for AutoCAD. Там для Excel это вылядит так:
excel as Object
Set excel = GetObject(,"Excel.Application")
Sub Auto_Close()
'Выгрузка приложения
Set excel = Nothing
End Sub
Что такое VLA-объект я не знаю.

Re: как закрыть автоматически вместе с AutoCAD приложение?

С Office-ными приложениями (Word, Excel и т.д.) проблем нет, всё работает. А вот с другими ничего не получается. :(

Re: как закрыть автоматически вместе с AutoCAD приложение?

... и не получится, по крайней мере на VBA. т.к. офисные приложения являются Серверами и предоставляют интерфейсы, через которые можно управлять приложением, обработкой данных и т.п. То есть связь с приложением осуществляется через объектную переменную (как Брагин написал) которая живёт вместе с автокадом. Закрывается автокад - убиваются все переменные, а если "xxx.exe" просто запустить командой "shell" или "STARTAPP" то связи-то с приложением нет никакой. И если офисные приложения запустить таким же образом, то и их будет не закрыть.
Вообщето у программиста понимание этого  уже должно сидеть в подсознании, т.к. технология OLE не вчера на свет появилась.
С уважением...

Re: как закрыть автоматически вместе с AutoCAD приложение?

Используя ObjectARX:
Сделать ARX-модуль(он же dll) в котором сделать  функцию closeAcad() { acedCommand(RTSTR, "quit"); }
При запуске автокада - загрузить этот arx

Из любого другого приложения взять и дернуть closeAcad()