Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Отслеживание открытия/закрытия чертежей AutoCAD [D7, 2000, XP, 2003]


Asail ©   (2006-02-09 12:08:00) 

Здрасте!!!
Можно-ли отследить события по откр./закр. чертежей (документов)? Пока, единственное, что смог придумать, это по таймеру обращатся через COM к акаду и смотреть, какие документы открыты, и какой из них активный.
В принципе, работает, но сильно грузит CPU, причем, не моим приложением, а акадом. Есть ли у кого более умные варианты?
Прилагаю свой код обработчика таймера (Interval=500):
List использую исключительно в целях отладки...

// подключаемся к акаду
try
 AcadAppl:=GetActiveOLEObject('AutoCAD.Application');
except
 Edit1.Text:='Acad not running...';
 Exit
end;
// проверяем активный документ
try
 AcadDoc:=AcadAppl.ActiveDocument;
 Edit1.Text:=AcadDoc.Name;
except
 Edit1.Text:='No open drawing...';
 Exit
end;
// находим список всех открытых документов
List.Clear;
try
 Count:=AcadAppl.Documents.Count;
 for i:=0 to Count-1
 do begin
   List.Items.Add(AcadAppl.Documents.Item(i).Name);
 end;
except end;


Спасибо!!


umbra   (2006-02-09 15:22:00) [1]

посмотрите в sdk или msdn о функциях ReadDirectoryChangesWили FindFirstChangeNotification. Похоже, это то, что вам надо


k2   (2006-02-09 15:11:00) [2]

написать *.аrх - специального вида длл-ку, пущай загружается при старте автокада, ловит события открытия/закрытия/активации, пишет в лог


Asail   (2006-02-09 13:51:00) [3]

Нет, но мне надо отследить момент открытия/закрытия документа. С точностью до секунды, хотя бы.


EvS   (2006-02-09 12:43:00) [4]

>(Interval=500)

Там, что каждые полсекунды кто-то открывает(закрывает) документы?


Наверх

Титульная страница Поиск, карта сайта Написать письмо