Как переключить фокус на эксель? #401662


#0 by Fram
Есть такой код Экс = Новый COMОбъект("Excel.Application"); ... Так вот, эксель открывается, но активным остается все равно окно 1С. Как программно сделать активным окно экселя? Спасибо
#1 by Fram
...
#2 by Aprobator
Посмотри в сторону ЗапуститьПриложение
#3 by Fram
Смотрел конечно.. Только почему то не всегда открывается. Не смог понять от чего зависит.
#4 by Torquader
Если открыл окно, что оно в коллекции Excel.Windows И у каждого окна есть метод Activate. Если только одно окно, что Excel.Windows.Activate должно спасти.
#5 by Torquader
Activate method as it applies to the Window object. Brings the window to the front of the z-order. This won't run any Auto_Activate or Auto_Deactivate macros that might be attached to the workbook (use the RunAutoMacros method to run those macros).
#6 by Rie
Спасает лишь на пару сотен миллисекунд. Потом снова активируется 1С. Явно поднять окно вверх (отдельно написанной dll) - тоже не помогает.
#7 by Torquader
Тогда и ЗапуститьПриложение не сильно поможет - как только по OLE-подключишься, тоже уйдёт вниз. Можно пробовать открывать Excel а из него уже подключаться к 1С.
#8 by Aprobator
Странно - у меня такой код: открывает и активизирует эксель.
#9 by Aprobator
сдается мне что засада в чем - то другом.
#10 by Rie
8.1 и 7.7 - всё же разные системы. Подобный код активизирует Excel из Word, программ на Delphi и т.д. Кроме 1С 7.7.
#11 by Aprobator
а при чем здесь 7.7?
#12 by Rie
Действительно... Виноват. Значит, как раз наоборот, есть много общего в поведении всех 1С. По собственному опыту - в 7.7 такая ситуация возникает постоянно. В 8.1 - либо возникает, либо нет. Почему и решил, что в 8.1 это исправлено, а "ломается" по каким-то иным причинам.
#13 by Aprobator
знать надо смотреть в сторону релиза платформы - у меня 8.1.13.41.
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С