IE2017

Переключатель клавиатуры для 1С

Программирование - Внешние компоненты

Переключатель клавиатуры для 1С

Часто при сканировании сканером штрих кода с буквами бывает необходимо переключить язык на определенный. Для этого я использую dynwrap.dll. При этом в конфигурации прописываем, для версии 7.7:

//*******************************************
Процедура Раскладка(Кнопка)
    Если  Кнопка = "rus" тогда
        Wrapper.LoadKeyboardLayout(SRus, 1);
        Wrapper.ActivateKeyboardLayout(NRus, 0);   
    Иначеесли  Кнопка = "eng" тогда   
        Wrapper.LoadKeyboardLayout(SEng, 1);
        Wrapper.ActivateKeyboardLayout(NEng, 0);   
      ИначеЕсли Кнопка = "ukr" тогда   
          Wrapper.LoadKeyboardLayout(SUkr, 1);
        Wrapper.ActivateKeyboardLayout(NUkr, 0);   
    КонецЕсли;
КонецПроцедуры
//********************************************

Процедура ПриОткрытии() 
    Раскладка("eng");
КонецПроцедуры;

//Переключатель клавитуры   
Wrapper = createobject("DynamicWrapper");

Wrapper.Register("USER32.DLL", "ActivateKeyboardLayout", "i=ll", "f=s", "r=l");
Wrapper.Register("USER32.DLL", "LoadKeyboardLayout", "i=sl", "f=s", "r=t");
Wrapper.Register("USER32.DLL", "GetKeyboardLayoutName", "i=r", "f=s", "r=l");

SRus = "00000419";
SEng = "00000409";
SUkr = "00000422";


NRus = 1049;
NEng = 1033;
NUkr = 1058;

для версии 8.1 :

Процедура Раскладка(Кнопка)
    Если  Кнопка = "rus" тогда
        Wrapper.LoadKeyboardLayout(SRus, 1);
        Wrapper.ActivateKeyboardLayout(NRus, 0);   
    Иначеесли  Кнопка = "eng" тогда   
        Wrapper.LoadKeyboardLayout(SEng, 1);
        Wrapper.ActivateKeyboardLayout(NEng, 0);   
      ИначеЕсли Кнопка = "ukr" тогда   
          Wrapper.LoadKeyboardLayout(SUkr, 1);
        Wrapper.ActivateKeyboardLayout(NUkr, 0);   
    КонецЕсли;
КонецПроцедуры

Процедура ПриОткрытии() 
    Раскладка("eng");
 КонецПроцедуры  

//Переключатель клавитуры   
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");
Wrapper.Register("USER32.DLL", "GetKeyboardLayoutName", "i=r", "f=s", "r=l");

SRus = "00000419";
SEng = "00000409";
SUkr = "00000422";


NRus = 1049;
NEng = 1033;
NUkr = 1058;   

Очень помогает, если используется Code128

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

Наименование Файл Версия Размер
dynwrap.dll
.1245224758 36,00Kb
25.09.09
53
.1245224758 36,00Kb 53 Скачать

См. также

Комментарии
1. Огонек Костров (Огонек) 21 29.05.13 18:15 Сейчас в теме
Спасибо автору, информация пригодилась в своей разработке.
Оставьте свое сообщение