ADN Club > VBA

Не могу открыть приложение AutoCAD в фоне

(1/2) > >>

Дамир:
Всем привет!
Вопрос простой. Скриптом открываю AutoCAD. Хочу чтобы приложение работало в фоне. Строку AcadApp.Visible = False  поместил в двух местах. В обоих случаях не работает. AutoCAD открывается, но не в фоне. Прошу помощи
Делаю так:

--- Код - Visual Basic [Выбрать] ---Sub GetCountOfSheets(O)  set Obj = O  set Files = Obj.Files    Dim AcadApp, Docs, Doc, Path, CounSheet, CountFile    CountSheet = 0  CountFile = 0    on error resume next  set AcadApp = GetObject(,"AutoCAD.Application")  If Err Then    Err.Clear    Set AcadApp = CreateObject("AutoCAD.Application")   End If  AcadApp.Visible = False   'Set AcadApp = GetObject(,"AutoCAD.Application")  'Set AcadApp = CreateObject("AutoCAD.Application")    Set Docs = AcadApp.Documents    'file.CheckOut file.WorkFileName  Obj.CheckOut  for each file in Files    if Right(file.WorkFileName, 4) = ".dwg" then      CountFile = CountFile + 1      path = file.WorkFileName      set Doc = Docs.Open(path)      CountSheet = CountSheet + Doc.Layouts.Count      Doc = nothing    end if  next  AcadApp.Visible = False   Obj.Attributes("ATTR_SHEET_COUNT_FACT").Value = CountSheet - CountFile  AcadApp.Quitend sub

Александр Ривилис:
Насколько я помню реального невидимого AutoCAD добиться не получится. Тут и иконки появляются, и Лента и т.д. А открытие новых чертежей это всё усугубляет. Возможно это поразному в разных версиях AutoCAD.
1) Можешь попробовать AcadApp.WindowState = acMin.
2) Можешь попробовать через функцию Windows API с именем ShowWindow, используя AcadApp.HWND в качестве параметра, скрыть окно.

Дамир:
Благодарю. Как я понял добиться явного скрытия приложения не получится. Как вижу в диспетчере AutoCAD открывается и среди видимых приложений и в фоне. Причем при закрытии руками видимого AutoCAD фоновые остаются в диспетчере.

Пашин Евгений:
Когда Вы сделали CreateObject ("Autocad.Application") приложение запускается в фоне, то есть в диспетчере видно процесс, а само окно не видно. Но ведь и этого должно хватать.

Пока Вы не вызовете AcadApp.Visible=True! Или когда совершите действие, которое по какой-то причине вызовет одно из диалоговых окно приложения, или смену вида. Тогда да, окно появится.

Мало кто лазит в диспетчер, чтобы отследить действие приложений.

Дамир:
Дело в том, что после CreateObject ("Autocad.Application") независимо от того, указываю я параметр Visible = True или Visible = False, либо вообще не указываю его. Я всегда получаю активное приложение. Возможно то огрехи машины по работе с COM-объектом, обязательно протестирую на другой.

Навигация

[0] Главная страница сообщений

[#] Следующая страница

Перейти к полной версии