Автор | Сообщение |
|
| |
Пост N: 6
Зарегистрирован: 22.04.15
|
|
Отправлено: 29.08.15 10:06. Заголовок: Остается в памяти процесс Excel
Привет всем, проблема такая - вывожу отчет на Excel - появляется в памяти процесс Excel.exe, oExcel := TOleAuto():New( "Excel.Application" ) oDocs := oExcel:Get( "WorkBooks" ) oDoc := oDocs:Add() oList := oExcel:Get( "ActiveSheet" ) oExcel:Visible := .F. ... телодвижения ... oExcel:Visible := .T. Пользователь производит определенные действия и при закрытии, в памяти остается процесс Excel.exe. То есть с каждым выводом отчета на Excel в памяти собирается куча этих процессов. Если прописываю в конце oExcel:Quit то при выводе Excel подготавливается, открывается и сразу закрывается ) Требуется, чтобы при подготовке отчета на Excel, сделать активным, вывести на экран но не закрывать (чтобы Пользователь мог дальше колдовать) но при закрытии Пользователем данного отчета - закрывался и в памяти процесс Excel.
|
|
|
Ответов - 9
[только новые]
|
|
|
| |
Пост N: 5249
Зарегистрирован: 17.05.05
|
|
Отправлено: 29.08.15 10:22. Заголовок: Новичок пишет: но п..
Новичок пишет: цитата: | но при закрытии Пользователем данного отчета - закрывался и в памяти процесс Excel. |
| Проверил у себя , все нормально закрывается и в памяти ни чего не остается. PS EXCEL 2003
|
|
|
|
| постоянный участник
|
Пост N: 4473
Зарегистрирован: 12.09.06
|
|
Отправлено: 29.08.15 11:09. Заголовок: Dima пишет: Провери..
Dima пишет: цитата: | Проверил у себя , все нормально закрывается и в памяти ни чего не остается. |
| При админских правах юзера - всё Ок, процесс закрывается. Если у юзера нет админских прав, то бяка - не всегда получается закрыть... У меня некоторые админы сети жаловались на это, что в конце работы на компе - куча процессов Excel.
|
|
|
|
| |
Пост N: 5250
Зарегистрирован: 17.05.05
|
|
Отправлено: 29.08.15 11:57. Заголовок: Andrey Может ты и п..
Andrey Может ты и прав. У нас все ходят с админскими правами , вероятно поэтому и нет описанной проблемы.
|
|
|
|
| |
Пост N: 640
Зарегистрирован: 20.02.11
|
|
Отправлено: 29.08.15 12:28. Заголовок: Думаю что админские ..
Думаю что админские права тут не при чем. Процесс создается от имени и с правами текущего пользователя и срответственно может быть убит этим пользователем. А вот кривых сборок офиса я видел много, каких только чудес не увтдишь пока нормальный офис не поставишь. В догонку. У меня ни у одного юзера нет админки , но процесс зависает в памяти только если при выводе произошла ошибка OLE. В остальном все ок
|
|
|
|
| |
Пост N: 366
Зарегистрирован: 17.06.10
|
|
Отправлено: 29.08.15 14:37. Заголовок: Админские права коне..
Админские права конечно непричем.Чисто алгоритм действтй. Ежели надо недопучтить висящкго процесса Excel ну и не пускай его через OLE просто ранируй. Иначе надо отслеживать данный Excel-процесс и закрыть Ole-соединение Quit или убивать висящий процесс через WMI
|
|
|
|
| |
Пост N: 642
Зарегистрирован: 20.02.11
|
|
Отправлено: 30.08.15 10:02. Заголовок: Новичок пишет: oDoc..
Пользую обычно так и вроде без проблем oExcel := CreateObject( "Excel.Application" ) oExcel:Workbooks:Add() oExcel:Visible := .F. oExcel:SET( "DisplayAlerts", .F. ) oSheet := oExcel:Get( "ActiveSheet" ) ... ... oExcel:Visible := .T. oExcel:SET( "DisplayAlerts", .T. )
|
|
|
|
| |
Пост N: 5252
Зарегистрирован: 17.05.05
|
|
Отправлено: 30.08.15 10:08. Заголовок: Haz пишет: oExcel:S..
Haz пишет: цитата: | oExcel:SET( "DisplayAlerts", .F. ) |
| что то новенькое ;) я так пишу oExcel:DisplayAlerts:=.f.
|
|
|
|
| |
Пост N: 643
Зарегистрирован: 20.02.11
|
|
Отправлено: 30.08.15 10:20. Заголовок: Dima пишет: пишу oE..
Dima пишет: цитата: | пишу oExcel:DisplayAlerts:=.f. |
| это одно и то же ) В ОЛЕ есть метод Set() иногда только через него и получается
|
|
|
|
| |
Пост N: 5253
Зарегистрирован: 17.05.05
|
|
Отправлено: 30.08.15 10:40. Заголовок: Haz Точно , я тупан..
Haz Точно , я тупанул...
|
|
|
|