В моем приложении winforms, взаимодействующем с Excel через взаимодействие,
Я пытаюсь присоединиться к существующему процессу Excel, если он есть. Получение объекта, кажется, работает хорошо, но если приложение Excel свернуто (что вполне вероятно в моем случае использования), мне не удается восстановить окно и вывести его на передний план.
Я пробовал следующие утверждения:
try
app = (Excel.Application)Marshal.GetActiveObject("Excel.Application");
catch (Exception) { /* ignore */ }
if (app == null)
{
app = new Excel.Application();
app.Visible = true;
}
if (app.ActiveWindow.WindowState == Excel.XlWindowState.xlMinimized)
app.ActiveWindow.WindowState = Excel.XlWindowState.xlNormal;
wb = ...
wb.Activate();
Ни один из них не имел никакого эффекта. Как мне этого добиться?
( Обратите внимание: моя проблема связана со случаем, когда является существующим экземпляром, поэтому "Visible = true" не требуется, а этот поток не делает применяются. )