В моем WinForms приложение, взаимодействующего с Excel через COM Interop,Excel Interop: Восстановление свернутого окна
Я пытаюсь прикрепить к существующему процессу 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 = истина» не является необходимым и this thread не применяется.)
http://stackoverflow.com/questions/19118881/force-to-bring-excel-window-to-the-front – Ryan