Показать сообщение отдельно
Старый 23.04.2007, 16:04   #4  
Gustav is offline
Gustav
Moderator
Аватар для Gustav
SAP
Лучший по профессии 2009
 
1,858 / 1152 (42) ++++++++
Регистрация: 24.01.2006
Адрес: Санкт-Петербург
Записей в блоге: 19
на заметку
Дозвольте присоседиться со своим "пятачком". Потребовалось влезть в уже работающий скрытый экземпляр Excel: длительный вывод данных завис и нужно было посмотреть, в чём дело. Запускать весь процесс заново с visible = true не хотелось - в целях экономии времени (место, где поставить visible = true еще нужно было искать в чужом коде). Визуализироваться помог такой джобик, запущенный из другой сессии Аксапты (предварительно все другие видимые экземпляры Excel были закрыты - в Task Manager'е оставался только этот единственный скрытый "зависший" Excel):
X++:
static void Show_Excel(Args _args)
{
    COM xlApp;
    xlApp = COM::getObject('Excel.Application');
    xlApp.Visible(true);
}
или можно совсем коротко, хотя и чуть менее наглядно:
X++:
static void Show_Excel(Args _args)
{
    ;
    COM::getObject('Excel.Application').Visible(true);
}

P.S. А если под рукой вдруг нет Аксапты или не хочется создавать джоб, то можно открыть зависший Excel из другого приложения Office, например, из Word при помощи такого кода VBA:
Код:
Sub Show_Excel_From_Word()

    Dim xlApp As Object
    Set xlApp = GetObject(, "Excel.Application")
    xlApp.Visible = True
   
End Sub

Последний раз редактировалось Gustav; 06.07.2007 в 18:44. Причина: добавил код VBA, так как самому потребовалось прибегнуть