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,чьобы активировать окно другого процесса или потока,нужно подключиться к его потоку ввода,тогда команда активации отработает
|
|