Показать сообщение отдельно
Старый 25.08.2010, 18:59   #1  
jkspb is offline
jkspb
Участник
 
18 / 20 (1) +++
Регистрация: 03.03.2009
Иморт из Excel 2010. Как правильно закрыть Excel?
Доброго времени суток.

Столкнулся с проблемой в аксапте при работе с excel 2010, после excel.quit() приложение все равно висит в процессах. С предыдущими версиями еселя таких проблем нету.

Вот пример работы с файлом excel

X++:
static void testImport2(Args _args)
{
    FileName                filenameOpen = @"С:\test.xls";
    COM                     com;
    SysExcelApplication     Excel;
    SysExcelWorkbooks       books;
    InteropPermission       comPermission;
    ;

    comPermission = new InteropPermission(InteropKind::ComInterop);

    Excel = SysExcelApplication::construct();
    excel.visible( false);
    excel.displayAlerts(false);

    books = Excel.workbooks();
    books.open( filenameOpen);
    books.close();
    books = null;

    //com = books.comObject();
    //com.close();
    //com.finalize();
    //com = null;

    excel.quit();
    excel.displayAlerts(true);
    excel = null;

    CodeAccessPermission::revertAssert();
    info( "End");
}
Самой интересное, что любые существующие рецепты, не только в аксапте, сводятся к тому, чтобы закрыть и явно удалить сом объект workbooks,. и закрывать приложение ексель, с явным удалением сом объекта, как в представленном примере.

Вот примеры:
http://social.msdn.microsoft.com/For...f-bd17fa70f379
http://social.msdn.microsoft.com/for...8-74793F297F13
http://social.msdn.microsoft.com/For...-353a5946f151/
http://msdn.microsoft.com/ru-ru/library/ee317478.aspx

Было предположение, что аксапта не корректно удаляет процесс. В качестве проверки, по представленным ссылкам был сделан примерчик на c#, консольное приложение (см. вложение) - результат тот же, с екселем 2010 процесс остается висеть, в поздних версиях процесс закрывается.

При этом, стоит отметить, что в excel 2010 увеличилось настроек безопасности, особенно по открытию файлов в защищенном режиме. Есть подозрение, что проблема как-то с этим связана, хотя минимизировал в них все ограничения - не помогло, может не то и не там настраивал.

Что посоветуете?

Dax 2009 Ru4, KernelVersion 5.0.1500.2116, Win2008 sp2, MS Sql 2008
MS Office 2010.
Вложения
Тип файла: rar ExcelTest.rar (351.5 Кб, 108 просмотров)