Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> Оконный активатор WindowActivator: развернуть любое свернутое или ушедшее на задний план окно из 1С          
Vofka Подменю пользователя
сообщение 09.11.15, 10:19
Сообщение #1

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 13948
Из: Киев
Спасибо сказали: 4514 раз
Рейтинг: 3635.6

Привет!

Понадобилось мне разворачивать окно 1С при "стечении определенных обстоятельств". Тыкал мыкал, что-то никак. Вспомнил про 1С Notifier, там вроде что-то такое было. Проверил - не работает. Почему не работает - фиг знает. И исходники искать надо. Короче, беда.

Пришлось писать компоненту, которая работала бы. Делюсь с вами.

Подключается стандартным способом:

Если Компонента = Неопределено Тогда
    Если Не ПодключитьВнешнююКомпоненту("AddIn.WindowActivator") Тогда
        Предупреждение("Не удалось загрузить компоненту");
        Отказ = Истина;
    КонецЕсли;
    
    Попытка
        Компонента = Новый("AddIn.WindowActivator");
    Исключение
        Отказ = Истина;
    КонецПопытки;
КонецЕсли;


У компоненты один метод:

Компонента.Activate(ИмяОкна, Режим);

ИмяОкна - тип Строка - имя требуемого окна, как оно пишется в диспетчере задач. Если нужно развернуть текущее окно 1С, то для определения имени окна в 1С я использую 1С-ную функция ПолучитьЗаголовокПриложения()
Режим - тип Строка - есть 3 варианта:
  • NORMAL - разворачивает окно в нормальном режиме
  • MAXIMIZED - разворачивает окно на полный экран
  • RESTORE - разворачивает окно в том виде, как оно было. Т.е. если спрятанное окно было развернуто на весь экран - появится на весь экран. Если было не на весь экран - появится не на весь экран
  • Если передать туда что-то, кроме этих 3 вариантов, то будет использован режим RESTORE


Для того, чтобы компонента работала - её нужно зарегистрировать в системе. Делается это тоже обычным способом. Запускаем от имени администратора командную строку и пишем там: regasm <Путь к компоненте> /codebase
Если после этого в окне командной строки вконце написало Types registered successfully - то все прошло нормально.

Желательно, чтобы в системе был установлен .NET Framework 4. На меньшем не проверял, но может и на меньших версиях работать будет.
Работа проверялась на платформа 8.2.19.130.
На 7.7 не проверял, но теоретически, должно и там работать.

Скачать: Прикрепленный файл  WindowActivator.zip ( 5,8 килобайт ) Кол-во скачиваний: 40

Пароль к архиву вы знаете smile.gif

Сообщение отредактировал Vofka - 02.03.17, 15:36

Спасибо сказали: Bernet, mister-x, Zaval,

Vofka Подменю пользователя
сообщение 02.03.17, 15:39
Сообщение #2

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 13948
Из: Киев
Спасибо сказали: 4514 раз
Рейтинг: 3635.6

Появилась необходимость использовать эту компоненту. Попробовал и обнаружил, что не всегда окно активируется. Активировалось, кажется, если окно именно свернуто (в окне было нажато на _ справа вверху). Если окно просто находилось на заднем плане (открыли другое окно поверх требуемого), то оно потом не выскакивало на передний план. Архив в первом сообщении обновлен.

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 28.03.24, 11:37
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!