Подключиться к открытым по OLE Excel #809840


#0 by dk
Есть обработка которая подключается по OLE к Excel Эта обработка зависла - 1с я убил а Excel остался висеть И таких зависших Excel довольно много Есть у кого готовый инструмент чтобы подключиться к зависшим Excel и активизировать их - показать экран Думаю там какая-то ошибка в Excel и очень хотелось бы на нее взглянуть
#1 by Ёпрст
Activate не подходит, для книжки ?
#2 by Ёпрст
прям с 1с-ины тем же апликейшеном + visible=1
#3 by dk
как-то писал подобно но щас времени нет восстанавливать тупо GetComObjet вместо New ComObject  было вроде ------------------- все книги созданы через New ComObject - т.е. новый аппликашен каждый раз
#4 by Ёпрст
на вот, первый попашийся код: Оле=СоздатьОбъект("Excel.Application");     //поиск в открытом приложении      Для i=1 По Оле.Workbooks.Count Цикл           ТекКнига=Оле.Workbooks(i);           Если ТекКнига.Name=Файл Тогда                Книга=ТекКнига;                Прервать;           КонецЕсли;      КонецЦикла;
#5 by dk
[1C]     Попытка         Скрипт=СоздатьОбъект("MSScriptControl.ScriptControl");         Скрипт.language="javascript";         Оле=Скрипт.Eval("GetObject("""",""Excel.Application"")");     Исключение         Сообщить("Не удалось открыть Excel");         Возврат;     КонецПопытки;              Оле.Visible = -1;     Оле.WindowState = -4137;          //поиск в открытом приложении     Сообщить(12312312);         Для i=1 По Оле.Workbooks.Count Цикл           ТекКнига=Оле.Workbooks(i);           Сообщить(i);           Сообщить(ТекКнига.Name);     КонецЦикла;         Для i=1 По Оле.Windows.Count Цикл         Оле.Windows(i).Activate;     КонецЦикла;     [/1C] ------------- пока так подключаюсь ничего интересного не нашел - тупо открывает Excel без книги
#6 by Сияющий в темноте
Насколько я помню, GetObject позволяет подключиться только к одному экземпляру, а остальные в RunObjectTable просто не регистрируются, и подключиться к ним уже просто нельзя, а нужно "заваливать" через KillProcess.
#7 by dk
угу, открывал, открывал и похоже подключиться к OLE нельзя таким способом - жаль прибил все процессы (
#8 by Сияющий в темноте
Если хочется завершать, то можно при создании объекта ставить Visible=True, тогда приложение Excel будет видно. Также, можно делать сначала GetObject, чтобы получить предыдущий, и если не получилось, то выполнять CreateObject.
Тэги: Админ
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С