Управление окнами и мониторами в 1С



Управление размерами, активностью и положением окон из 1С с возможностью вывода окон на второй монитор и запретом изменения окна.

Протестировано на платформе 1С 8.3.13 — 8.3.15, на конфигурациях БП, УНФ, УТ. В среде WINDOWS 8 — 10

В комплекте два DLL файла x32 и x64, а также демонстрационная обработка.

Стандартная Native (win) библиотека для управления окнами

Позволяет вывести окно в любой точке экрана, на любом из мониторов.

Подключается как Native

ИмяКомпоненты = "SetWindow";
Рез = ПодключитьВнешнююКомпоненту(ПолныйПутьКФайлуОкон, ИмяКомпоненты, ТипВнешнейКомпоненты.Native);
ПрогИД = "AddIn." + ИмяКомпоненты+".SetWindow";
КомпонентВК = Новый(ПрогИД);

Область применения:

Вывод второстепенного окна на второй монитор (Монитор покупателя);

Запретить пользователю изменять размер окна (Рабочее место кассира);

Вывод окна в определенном месте экрана (Рабочее место кассира, Телефония);

Просто побаловаться (Вывести окно, чтоб бухгалтера не смогли ни закрыть, не сдвинуть это окно) !

Функции

ПолучитьМониторы();

ПолучитьНастройкиМонитора(Монитор);

ПолучитьДескрипторАктивногоОкна();

ПолучитьСписокОкон();

ПолучитьДескрипторОкна(ИмяКласса, ЗаголовокОкна);

ПолучитьПараметрыОкна(ДескрипторОкна);

Процедуры

УстановитьПозициюОкна(ДескрипторОкна, x, y);

РазвернутьНаВесьЭкран(ДескрипторОкна);

УстановитьРазмерОкна(ДескрипторОкна, ширина, высота);

ВывестиОкноНаМонитор(Монитор, ДескрипторОкна);

АктивизироватьОкно(ДескрипторОкна);

ЗапретитьИзменятьРазмерОкна(ДескрипторОкна, Статус);

ЗакрепитьОкно(ДескрипторОкна, Статус);

БлокироватьКнопкиУправления(ДескрипторОкна, Статус);

 

2 Comments

  1. VmvLer

    Область применения заманчива, правда настройки громоздкие и чисто визуально выглядят небрежно «на отцепись»

    буду ждать благодарных отзывов а ля

    «скачал и стал ходить по воде»

    «купила и сразу влезла в школьные джинсы»

    и т.д.

    когда станет ясно, что это работает — будем брать

    Reply
  2. Grigoriy251

    (1)

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

    Обработка служит для демонстрации возможностей, небрежно да, но в ней раскрыта вся суть использования Native библиотеки.

    Настройки нет не громоздкие, для примера (алгоритм):

    1. Получаем список окон

    2. Находим необходимое нам окно

    3. А дальше выбираем, что с ним делать.

    для примера код:

    ПолныйПутьКФайлуОкон= «D:SetWindow.dll»;
    ИмяКомпоненты = «SetWindow»;
    Рез = ПодключитьВнешнююКомпоненту(ПолныйПутьКФайлуОкон, ИмяКомпоненты, ТипВнешнейКомпоненты.Native);
    ПрогИД = «AddIn.» + ИмяКомпоненты+».SetWindow»;
    КомпонентВК = Новый(ПрогИД);
    ИдентефикаторОкна = ПолучитьДескрипторОкна(«», «Калькулятор»);
    КолВоМониторов = ПолучитьМониторы();
    Если КолВоМониторов=2 Тогда
    ВывестиОкноНаМонитор(2, ИдентефикаторОкна);
    КонецЕсли;
    РазвернутьНаВесьЭкран(ИдентефикаторОкна);
    ЗапретитьИзменятьРазмерОкна(ИдентефикаторОкна, Истина);
    ЗакрепитьОкно(ИдентефикаторОкна, Истина);
    

    Показать

    Только перед использованием откройте калькулятор

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *