Форум программистов, компьютерный форум, киберфорум
Visual C++
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
2 / 2 / 1
Регистрация: 03.11.2010
Сообщений: 12

Убить Excel из памяти

13.11.2010, 23:22. Показов 1322. Ответов 0
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Привет всем!
Прежде чем написать что-то, разумеется гуглил.
Что интересно, на эту тему сообщений - море.
Другое дело, что ситуаций еще больше.

Мой рассклад.
К Excel подрубаюсь через OLE-сервер (полный пример тут http://support.microsoft.com/kb/216686):
вот код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include "Ole2.h"
::CoInitialize(NULL);
        // Берем CLSID с сервера
        CLSID clsid;
        HRESULT hr = CLSIDFromProgID(L"Excel.Application", &clsid);
        // Стартуем объект и CLSID       
        hr = CoCreateInstance(clsid, NULL, CLSCTX_LOCAL_SERVER, IID_IDispatch, (void **)&pXlApp);
///бла-бла-бла, создается целое дерево подчиненных pXlApp
///и пытаемся все это дело убить
VARIANT param;
param.vt = VT_BOOL;param.boolVal = false;
AutoWrap(DISPATCH_METHOD, NULL, pXlBook, L"Close", 1, param);
AutoWrap(DISPATCH_METHOD, NULL, pXlApp, L"Quit", 0);
pXlApp->Release();
pXlBooks->Release();
pXlBook->Release();
pXluRange->Release();
pXluCells->Release();
pXluRows->Release();
pXluColumns->Release();     
///самое главное
CoUninitialize();
Функция AutoWrap() здоровая, ее можно посмотреть по ссылке, которую я привел выше... но думаю с ней все впорядке.

Теперь самое интересное: тот же самый код репетирую в консольном приложении - все тип-топ. EXCEL.EXE благополучно убивается причем достаточно только:
C++
1
2
AutoWrap(DISPATCH_METHOD, NULL, pXlApp, L"Quit", 0);
CoUninitialize();
Но как только пытаюсь применить этот код в dll-ке - все... абзац... никак не могу победить EXCEL.EXE... только руками через диспетчер задач, что не есть хорошо...

Брацы, помогите эту дуру одолеть пожалуйста, сил нету уже

Добавлено через 37 минут
Все, нормально... победил... у меня компонента для 1С пишеца, так я деструктор этот в процедуру поместил, который выполняется при отключении dll... и все благополучно умирает...
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
13.11.2010, 23:22
Ответы с готовыми решениями:

Excel остается в памяти. Как убить процесс?
Я пытаюсь открыть и закрыть имеющийся EXCEL файл. Как убить процесс? Мой код не может. Кто-нибудь поправит? Спасибо. vladconn ...

Как убить лишние процессы в памяти?
Есть белый список, все процессы которые в него не входят убить, делаю тупо так, но не получается, подскажите куда копать? using...

Не могу убить Excel
Приветствую. Не могу понять в чём дело. Ситуация следющая: необходимо скопировать 2 листа из одной книги в другую. Вроде проще некуда...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
13.11.2010, 23:22
Помогаю со студенческими работами здесь

Как убить Excel из модуля?
Собственно вопрос: <STRONG>Как его отрубить?</STRONG> Отрубать нужно из модуля. Может кто-нибудь сталкивался в своей практике с таким...

Не получается убить процесс excel
работаю с excel и при выходе пытаюсь закрыть сам excel и убрать его из процессов вот таким образом exApp.WorkBooks.Close; exApp.Quit;...

Как из задачника убить загруженый Excel?
Товарищи программисты, как из задачника убить загруженый EXCEL. вот пример кода: Set objXL = CreateObject('Excel.Application') Set...

Как полноценно убить процесс Excel?
С своем приложении я сначала открываю файл Excel'a, потом закрываю с выходом (xl.Quit), тем не менее, в списке процессов Excel остается,...

Убить все процессы EXCEL.EXE в диспетчере задач
На событии кнопки есть код который по идеи должен закрывать приложение Excel но он выдает ошибку. NullReferenceException:Ссылка на объект...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2. Данный документ берёт данные из другого нетипового документа. . .
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: 1. Реализовать контроль заполнения реквизита. . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru