![]() |
|
Переключение раскладки клавиатуры из 1С | ☑ | ||
---|---|---|---|---|
0
Web00001
14.03.13
✎
11:07
|
Доброго всем времени суток. Есть у нас сканер которым мы сканируем ean128 штрихкоды, в режиме клавиатуры. Если стоит русская раскладка, то мы вместо штрихкода, там где буквы, получаем черти че. В режим эмуляции компорта сканер переключаться отказался. Не то, что отказался, судя по документации, не умеет он этого. Возник вопрос как при созданни обработки которая подключает сканер, "ТОСервер" переключать язык на английский. Гугл показал на библиотеку dynwrap.dll и примеры как ей пользоваться в 1С. Вот только при переключении с ее помощью раскладки на английскую, обратно на русскую уже переключить никак. Может в винде(win7x64) проблема, может еще в чем то. Проблему победить не удалось. Может есть еще какие то варианты решения вопроса? Вообще идеальный вариант, ловить событие ДО сканирования, переключать, читать, переключать обратно. Но вроде как это невозможно. Тогда можно было бы остановиться на вопросе переключения раскладки, при подключении торгового оборудования.
|
|||
1
pessok
14.03.13
✎
11:09
|
(0)
СменитьРаскладку("англ"); Пока ПолучитьСерверТО() Цикл КонецЦикла СменитьРаскладку("рус"); не выйдет? |
|||
2
Web00001
14.03.13
✎
11:13
|
>>СменитьРаскладку("англ");
Это ты про что? про dynwrap.dll? или про что? |
|||
3
pessok
14.03.13
✎
11:14
|
(2) про него самого
|
|||
4
Web00001
14.03.13
✎
11:20
|
Открываем к примеру справочник номенклатура.
В обработке ТО при создании срабатывает СменитьРаскладку("англ"); Раскладка переключается, все ок, пользователь отсканировал что то, и теперь хочет найти что в справочнике написав строку по русски. Меняет раскладку на русскую. Она обратно через 2 секунды английская. И так везде в пределах окна 1С. |
|||
5
pessok
14.03.13
✎
11:21
|
||||
6
pessok
14.03.13
✎
11:22
|
+(5) в последнем посте треш и угар, но оно сработает :)
|
|||
7
pessok
14.03.13
✎
11:24
|
т.е. суть в том, что не надо использовать длл-ку, создаешь wscript, передаешь тупо Ctrl+Shift, радуешься
|
|||
8
Sserj
14.03.13
✎
11:26
|
(7) А если сотня юзверей и у половины раскладка по другому меняется?
|
|||
9
pessok
14.03.13
✎
11:28
|
(8) [HKEY_CURRENT_USER\Control Panel\Input Method\Hot Keys
|
|||
10
pessok
14.03.13
✎
11:31
|
+(9) из реестра получаем метод смены раскладки, в зависимости от него жмакает кнопки. благо, в венде вариантов немного. а в невенде и .dll работать не будет :)
|
|||
11
Sserj
14.03.13
✎
11:32
|
(9) А из вебклиента есть доступ к реестру?
|
|||
12
pessok
14.03.13
✎
11:33
|
(11) а из веб клиента можно выполнить .dll?
|
|||
13
pessok
14.03.13
✎
11:34
|
да и обработка торгового оборудования через веб-клиент - этапять :)
|
|||
14
Web00001
14.03.13
✎
11:35
|
>>передаешь тупо Ctrl+Shift, радуешься
а у пользователя стоит английская в этот момент, и радостно меняется на русскую. Юзер один, вебклиента нет |
|||
15
pessok
14.03.13
✎
11:37
|
(14) ну что ты в самом деле. получи сначала, какую раскладку юзверь использует, потом решай, менять или нет
|
|||
16
йети
14.03.13
✎
11:39
|
(0) можно использовать компоненту Ежика,
а можно Если Симв = "А" Тогда СимвЛат = "F" ИначеЕсли Симв = "Б" Тогда СимвЛат = "<" ИначеЕсли Симв = "В" Тогда СимвЛат = "D" ... |
|||
17
pessok
14.03.13
✎
11:40
|
(16) о, кстати, да :)
|
|||
18
Web00001
14.03.13
✎
11:45
|
(15)>> ну что ты в самом деле. получи сначала, какую раскладку юзверь использует
Как? (16) Это тоже пришло мне в голову, но как то это... неправильно |
|||
19
Torquader
14.03.13
✎
13:43
|
(18) Правильное решение - анализ Scan-кодов клавиатуры, а не переданных символов - сканер-то про раскладку вообще не знает, и шлёт нам скан-коды клавиш, веря, что они преобразуются правильно.
|
|||
20
Web00001
14.03.13
✎
15:14
|
(19)Что там шлет сканер вопрос номер два, что к нам приходит от драйвера сканера, с тем и приходится работать.
|
|||
21
Torquader
14.03.13
✎
15:18
|
Задача решается кардинально, если написать фильтр-драйвер, который полученные символы от любого устройства будет передавать в виртуальный COM-порт.
Собственно говоря, ничего сложного - нужно сесть и написать. |
|||
22
Web00001
14.03.13
✎
15:49
|
Заняться нечем конечно, сесть написать драйвер, еще и заодно прочесть документацию как это делать в объеме книги "Профессиональная разработка в системе 1С:Предприятие 8", причем половина документации будет на английском, также надо будет наверняка и подписать (для винды7x64). Спасибо я наверно пропущу такой этот увлекательнейший но затратный по времени квест.
|
|||
23
Torquader
14.03.13
✎
19:52
|
(22) Зато результатом будет возможность превращения любого HID-устройства в последовательный порт.
По крайней мере, это вполне реально сделать. А вот подписать будет намного сложнее, так как требуется регистрация в Microsoft. |
|||
24
Web00001
15.03.13
✎
03:42
|
(23)Реально много чего можно сделать, у меня идей на пару жизней вперед. Тока время не резиновое.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |