Каталог решений - 1С 8.2 переключение раскладки клавиатуры (с помощью dynwrap.dll)

1С 8.2 переключение раскладки клавиатуры (с помощью dynwrap.dll)

1С 8.2 переключение раскладки клавиатуры (с помощью dynwrap.dll)

В наличии

Функция для автоматического переключения раскладки клавиатуры. (с помощью dynwrap.dll)
Дабы не переключать каждый раз (при вводе информации в разных полях) с "Rus" на "Eng", можно эту работу возложить на функцию.

Категория:

Описание

Мэханизм работает так:

1) регистрируем dll-ку в операционке:  

regsvr32.exe «C:\WINDOWS\system32\dynwrap.dll»

2) Создаем функцию на сервере: 

Функция  ПереключитьРаскладкуDW(Имя) Экспорт
    Попытка
        Wrapper = новый COMОбъект(«DynamicWrapper»);
        Wrapper.Register(«USER32.DLL», «ActivateKeyboardLayout», «i=ll», «f=s», «r=l»);
        Wrapper.Register(«USER32.DLL», «LoadKeyboardLayout», «i=sl», «f=s», «r=t»);
        
    Исключение
        Возврат Истина;
    КонецПопытки;
    
    SRus = «00000419»;
    SEng = «00000409»;
    
    NRus = 1049;
    NEng = 1033;
    
    Попытка
        Если Нрег(Имя) = Нрег(«Rus») тогда
            Wrapper.LoadKeyboardLayout(SRus, 1);
            Wrapper.ActivateKeyboardLayout(NRus, 0);    
        Иначе    
            Wrapper.LoadKeyboardLayout(SEng, 1);
            Wrapper.ActivateKeyboardLayout(NEng, 0);    
        КонецЕсли;
        возврат Ложь;
    Исключение
        Возврат Истина;
    КонецПопытки;
КонецФункции

 

3) Запускаем функцию (в моем случае при открытии формы справочника):

&НаКлиенте
Процедура ПриОткрытии(Отказ)
    //переключим раскладку на английскую
    Раскл = ФункцииНасервере.ПереключитьРаскладкуDW(«Eng»);    
КонецПроцедуры

 

Для возврата обратно на русскую пишем:
Раскл = ФункцииНасервере.ПереключитьРаскладкуDW(«Rus»);

has been added to your cart:
Оформление заказа