Переключение раскладки клавиатуры из 1С #656305


#0 by Web00001
Доброго всем времени суток. Есть у нас сканер которым мы сканируем ean128 штрихкоды, в режиме клавиатуры. Если стоит русская раскладка, то мы вместо штрихкода, там где буквы, получаем черти че. В режим эмуляции компорта сканер переключаться отказался. Не то, что отказался, судя по документации, не умеет он этого. Возник вопрос как при созданни обработки которая подключает сканер, "ТОСервер" переключать язык на английский. Гугл показал на библиотеку dynwrap.dll и примеры как ей пользоваться в 1С. Вот только при переключении с ее помощью раскладки на английскую, обратно на русскую уже переключить никак. Может в винде(win7x64) проблема, может еще в чем то. Проблему победить не удалось. Может есть еще какие то варианты решения вопроса? Вообще идеальный вариант, ловить событие ДО сканирования, переключать, читать, переключать обратно. Но вроде как это невозможно. Тогда можно было бы остановиться на вопросе переключения раскладки, при подключении торгового оборудования.
#1 by pessok
#2 by Web00001
>>СменитьРаскладку("англ"); Это ты про что? про dynwrap.dll? или про что?
#3 by pessok
про него самого
#4 by Web00001
Открываем к примеру справочник номенклатура. В обработке ТО при создании срабатывает СменитьРаскладку("англ"); Раскладка переключается, все ок, пользователь отсканировал что то, и теперь хочет найти что в справочнике написав строку по русски. Меняет раскладку на русскую. Она обратно через 2 секунды английская. И так везде в пределах окна 1С.
#5 by pessok
#6 by pessok
+ в последнем посте треш и угар, но оно сработает :)
#7 by pessok
т.е. суть в том, что не надо использовать длл-ку, создаешь wscript, передаешь тупо Ctrl+Shift, радуешься
#8 by Sserj
А если сотня юзверей и у половины раскладка по другому меняется?
#9 by pessok
[HKEY_CURRENT_USERControl PanelInput MethodHot Keys
#10 by pessok
+ из реестра получаем метод смены раскладки, в зависимости от него жмакает кнопки. благо, в венде вариантов немного. а в невенде и .dll работать не будет :)
#11 by Sserj
А из вебклиента есть доступ к реестру?
#12 by pessok
а из веб клиента можно выполнить .dll?
#13 by pessok
да и обработка торгового оборудования через веб-клиент - этапять :)
#14 by Web00001
>>передаешь тупо Ctrl+Shift, радуешься а у пользователя стоит английская в этот момент, и радостно меняется на русскую. Юзер один, вебклиента нет
#15 by pessok
ну что ты в самом деле. получи сначала, какую раскладку юзверь использует, потом решай, менять или нет
#16 by йети
можно использовать компоненту Ежика, а можно    Если        Симв = "А" Тогда СимвЛат = "F"    ИначеЕсли    Симв = "Б" Тогда СимвЛат = ""    ИначеЕсли    Симв = "В" Тогда СимвЛат = "D"        ...
#17 by pessok
о, кстати, да :)
#18 by Web00001
>> ну что ты в самом деле. получи сначала, какую раскладку юзверь использует Как? Это тоже пришло мне в голову, но как то это... неправильно
#19 by Torquader
Правильное решение - анализ Scan-кодов клавиатуры, а не переданных символов - сканер-то про раскладку вообще не знает, и шлёт нам скан-коды клавиш, веря, что они преобразуются правильно.
#20 by Web00001
Что там шлет сканер вопрос номер два, что к нам приходит от драйвера сканера, с тем и приходится работать.
#21 by Torquader
Задача решается кардинально, если написать фильтр-драйвер, который полученные символы от любого устройства будет передавать в виртуальный COM-порт. Собственно говоря, ничего сложного - нужно сесть и написать.
#22 by Web00001
Заняться нечем конечно, сесть написать драйвер, еще и заодно прочесть документацию как это делать в объеме книги "Профессиональная разработка в системе 1С:Предприятие 8", причем половина документации будет на английском, также надо будет наверняка и подписать (для винды7x64). Спасибо я наверно пропущу такой этот увлекательнейший но затратный по времени квест.
#23 by Torquader
Зато результатом будет возможность превращения любого HID-устройства в последовательный порт. По крайней мере, это вполне реально сделать. А вот подписать будет намного сложнее, так как требуется регистрация в Microsoft.
#24 by Web00001
Реально много чего можно сделать, у меня идей на пару жизней вперед. Тока время не резиновое.
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С