Мне не хватает Excel.Application.Quit
или события Excel.Application.BeforeQuit
. Кто-нибудь знает обходное решение для имитации этих событий?Предотвращение выхода из Excel
Доступ к Excel из приложения C# WinForms через COM Interop. С учетом объекта Excel.Application
, как я могу:
- Предпочитаете предотвратить отказ Excel от прекращения?
- Если это невозможно, как я могу по крайней мере извещение, когда Excel уходит?
Пожалуйста, обратите внимание: Поскольку у меня есть COM-ссылка на Excel.Application
, процесс Excel не выхода когда Эксла «бросить курить» пользователь. Хотя это звучит противоречиво, так оно и есть. Под «quit» я подразумеваю, что пользователь нажимает «Quit» или «cross button» в верхнем правом углу окна. Окно закрывается, файлы разгружаются, надстройки выгружаются и все, что делает Excel, кроме того, о чем я не знаю. Но я все еще могу использовать объект Application
, чтобы «оживить» процесс и сделать Excel видимым снова, хотя надстройки отсутствуют, и я не уверен, что еще находится в неопределенном состоянии.
Чтобы избавиться от этой проблемы, я хотел бы либо отменить Выход с самого начала (Подумайте о BeforeQuit
Cancel = true
, если он существовал), или, по крайней мере, получать уведомления, когда Excel является бросить курить, так что я могу освободить COM объекты и заставить процесс действительно выйти, и в следующий раз, когда мне понадобится Excel снова, я буду знать, что мне нужно сначала запустить его.
К сожалению, это замкнутый круг: Пока работает Excel, мне нужны COM-объекты. Поэтому я не могу избавиться от них до Excel ушел. С другой стороны, до тех пор, пока объекты COM там, процесс не выходит, даже если Excel претендует на выход, поэтому я не могу дождаться события выхода процесса или подобного.
У меня есть ощущение, что неприятен я собираюсь колотить головой о кирпичную стену ...
Используйте подушку, пожалуйста, кирпичи, как известно, довольно жесткие :) – Marko
Возможно ли отслеживать событие Process.Exit и перезапустить Excel в скрытом состоянии, если пользователь закрыт вручную? –
@Marko: Вы имеете в виду, что я не должен использовать Excel вообще? :-)/:-( – chiccodoro