|   |   | 
| 
 | Переключение раскладки клавиатуры из 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)Реально много чего можно сделать, у меня идей на пару жизней вперед. Тока время не резиновое.     | 
 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |