|
Убить процесс EXCEL.EXE через com | ☑ | ||
|---|---|---|---|---|
|
0
Tateossian
08.05.14
✎
11:55
|
Господа! Делаю вот так (Excel - com-сервер экселя):
Если Excel <> Неопределено Тогда Excel.Application.Quit(); Excel = Неопределено; КонецЕсли; Excel так и остается в процессах. ЧЯДНТ? |
|||
|
1
Сергиус
08.05.14
✎
11:59
|
(0) Возможно это тот процесс, который был открыт до этого..
|
|||
|
2
Чайник Рассела
08.05.14
✎
12:00
|
Excel.DisplayAlerts = 0;
Excel.Quit(); |
|||
|
3
Сергиус
08.05.14
✎
12:00
|
+(1)Поубивай все вручную..и проверь еще раз)
|
|||
|
4
koreav
08.05.14
✎
12:00
|
ExcelApplication.Application.Quit();
ExcelApplication = Неопределено; COMОбъект = ПолучитьCOMОбъект(ПутьКФайлу); COMОбъект.Close(); |
|||
|
5
Tateossian
08.05.14
✎
12:15
|
(3) Юзер жалуется, что это неудобно (у него несколько экселей может быть запущено и может кильнуть нужный). А так, я предложил:3
|
|||
|
6
Tateossian
08.05.14
✎
12:16
|
(1) Я на одном тестировал процессе.
|
|||
|
7
Tateossian
08.05.14
✎
12:25
|
(4) Ха, прикольно. Выдает предупреждение "Сервер занят": действие не может быть завершено, так как другая программа занята...
|
|||
|
8
Tateossian
08.05.14
✎
12:37
|
Комрады, нужна подсказка куда копать.
|
|||
|
9
Сергиус
08.05.14
✎
12:50
|
(8) вообщем тебе надо сделать неопределенным не только само СOM соединение, но и все объекты, которые ты получал через него. Пример:
Попытка Коннектор = Новый COMОбъект("V82.COMConnector"); Соединение = Коннектор.Connect("Usr=Имя;Pwd=Пароль;Srvr=Сервер;Ref=база;"); Исключение Сообщить(ОписаниеОшибки()); КонецПопытки; Запрос = Соединение.NewObject("Запрос"); Чтобы все прибить, надо: Запрос = ""; Коннектор = ""; Именно в таком порядке... Сначала все объекты, которые создал через COM, в самом конце Коннектор |
|||
|
10
Maxus43
08.05.14
✎
12:57
|
Excel.Application юзаешь же? юзай COMConnector
|
| Форум | Правила | Описание | Секции | Поиск |