![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Отслеживание открытия/закрытия чертежей 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)
Там, что каждые полсекунды кто-то открывает(закрывает) документы?