Активизация окна формы 1C поверх остальных программ/ Вывод окна 1С на передний план

Обработки - Универсальные обработки

Возникла необходимость выводить окно 1С поверх окон других программ, в том числе и запущенных модально...

Однажды столкнулся с необходимостью запускать оповещения из 1С на тач-моноблоке, где во весь экран модально уже запущена сторонняя программа. Было принято решение запускать модально 1С в небольшой области экрана, и периодически выводить его окно на передний план, если его перекрывают активные окна других программ.

Опиcание метода:

Используем библиотеку AutoItX3

AutoIt = Новый COMОбъект("AutoItX3.Control");

Для того, чтобы форма выводилась на передний план, она должна быть открыта в модальном режиме.

А дальше, через обработчик ожидания, можем выводить форму на передний план с нужной периодичностью:

Процедура <...>
      ПодключитьОбработчикОжидания("ВисетьПоверхВсехОкон",3);
КонецПроцедуры  

Процедура ВисетьПоверхВсехОкон()
	  Попытка
		  AutoIt.WinActivate(AutoIt.WinGetTitle(ЭтаФорма.Заголовок));
	  Исключение
		  Сообщить("не удалось активировать");
	  КонецПопытки;
  КонецПроцедуры 

Таким образом, даже если на экране запущены другие модальные окна сторонних программ, 1С сама себя будет выводить на передний план с заданной периодичность.

Перед тем, как запускать окно формы в модальном режиме и подключать обработчик ожидания, следует настроить размеры окна программы 1С на рабочем столе.

Скачать файлы

Наименование Файл Версия Размер
ФормаПоверхВсехПрограмм
.epf 6,38Kb
07.02.17
2
.epf 1 6,38Kb 2 Скачать

См. также

В этой теме еще нет сообщений.
Оставьте свое сообщение