Господа, программисты!
Прога писана на C# - я заливаю данные в Excel!
Открываю книгу:
private Excel.Application appExcel = new Excel.ApplicationClass();
xlsWorkBook = appExcel.Workbooks.Open(.....)
..........
..........
..........
..........
Закрываю:
xlsWorkBook.Close(0, Type.Missing, Type.Missing);
appExcel.Quit();
Заходим в Task Manager - в процессах висит Excel.exe, если пользователь воспользуется моей формой второй раз, то появится второй Excel.exe!
Можно ли как - нибудь убивать Excel в процессах???
Заранее благодарен!
Помогите убить процесс --- C#Висит в Task Manager
Автор Hudson, 23.06.2005, 09:09
#2
Отправлено 23.06.2005, 09:55:13
На сколько я знаю о платформе Net, могу сказать
что Net сама управляет уничтожением объектов
при помощи "сборщика мусора" поэтому у тебя
Excel висит в процессах. А по поводу второй инициализации
Excel попробуй поискать методы которые возвращают указатель на активный объект
сами таким способом боролись с повторным вызовом офисных приложений.
Пример, правда на Pascal
function GetOleObject(ClassName: string): _Application;
begin
try
Result := GetActiveOleObject(ClassName) as _Application;
except
Result := CreateOleObject(ClassName) as _Application;
end;
end;
Попробуй поискать что-то на вроде GetActiveOleObject
что Net сама управляет уничтожением объектов
при помощи "сборщика мусора" поэтому у тебя
Excel висит в процессах. А по поводу второй инициализации
Excel попробуй поискать методы которые возвращают указатель на активный объект
сами таким способом боролись с повторным вызовом офисных приложений.
Пример, правда на Pascal
function GetOleObject(ClassName: string): _Application;
begin
try
Result := GetActiveOleObject(ClassName) as _Application;
except
Result := CreateOleObject(ClassName) as _Application;
end;
end;
Попробуй поискать что-то на вроде GetActiveOleObject
Количество пользователей, читающих эту тему: 1
пользователей: 0, неизвестных прохожих: 1, скрытых пользователей: 0