gifts2017

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

Опубликовал Igor (MatveyIgor) в раздел Программирование - Внешние компоненты

Переключатель клавиатуры для 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
52
.1245224758 36,00Kb 52 Скачать

См. также

Подписаться Добавить вознаграждение

Комментарии

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