Переключатель клавиатуры для 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

1 Comment

  1. Огонек

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

    Reply

Leave a Comment

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