| 0
    
        U_KA   14.02.18✎ 08:22 | 
        Добрый день!
Решаемая задача:
 Есть консолидация, переведена на упр формы, заведены пользователи. Есть РИБы этих пользователей (около 50), в которых пользователи должны запускать обмены. РИБы на обычных формах. Необходимо закрыть доступ в РИБы, за исключением возможности запускать обмен.
 Вносить изменения в РИБы нет возможности (существующих ролей недостаточно полностью закрыть доступ), соответственно было решено открыть формы обменов напрямую из консолидации, при помощи технологии OLE Automation.
 При этом свойство Visible установлено в значение Ложь, чтобы не было возможности открыть другие формы.
 Все срабатывает корректно, за исключением активации открываемого окна. Активация окна не срабатывает, приходится использоваться alt+tab, что неудобно.
 Что было проверенно:
 1) Используется метод ОткрытьФормуМодально, т.к. ОткрытьФорму не показывает форму
 2) Создание обработки, в которой создана форма обмена, обработка подключается как внешняя. Создается и открывается в РИБе, при этом:
 а) Добавление на форму обработки html документа и его активация
 б) Использование активации окна методом "Активировать" при открытии формы обработки
 в) Использование активации окна с помощью Shell при открытии формы обработки
 Shell = Новый COMОбъект("WScript.Shell");
 Shell.AppActivate(ПолучитьЗаголовокСистемы());
 В результате все равно окно не выходит на первый план. Кто встречался с таким, подскажите, как все-таки активировать данное окно?
 |  | 
    
        | 1
    
        Сияющий в темноте   14.02.18✎ 08:56 | 
        в современных Windows,чьобы активировать окно другого процесса или потока,нужно подключиться к его потоку ввода,тогда команда активации отработает     |  |