Windows-терминалы WTware

Программа-клиент службы терминалов Windows Terminal Services, для бездисковых терминалов и загрузки по сети. Основной сайт http://www.wtware.ru
Текущее время: Вт окт 17, 2017 3:04 am

Часовой пояс: UTC+03:00




Начать новую тему  Ответить на тему  [ 24 сообщения ] 
Автор Сообщение
СообщениеДобавлено: Ср авг 30, 2017 2:27 pm 
Не в сети

Зарегистрирован: Пн мар 13, 2017 5:30 pm
Сообщения: 34
Добрый день!

Мы используем тонкие клиенты на складе. К клиентам подключен блок клавиатуры, на котором есть только NumPad кнопки. Пока мы работали на нашем программном обеспечении все было хорошо, но с какого то времени часть терминальных клиентов мы переводим на 1С. И в процессе этого перевода столкнулись со некоторыми сложностями.

Клиент 1С иногда требует сервисных операций, для которых недостаточно кнопок на цифровой клавиатуре. Для решения этого вопроса они используют сочетания кнопок [NumPad +] и цифровые кнопки ([1], [2] b т.д.), но чтобы оно работало они на виндовых машинах (с которых раньше ходили на терминальный сервер) специальным параметром реестра "ремапили" клавишу [NumPad +] на клавишу [Ctrl]. Вот параметр для ремапинга:

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout]
"Scancode Map"=hex:00,00,00,00,00,00,00,00,02,00,00,00,1d,00,4e,00,00,00,00,00

Таким образом получалось что когда пользователь нажимает [NumPad+]+[1], то 1С воспринимает это как комбинацию клавиш [Ctrl]+[1] и запускает необходимую обработку.

Однако на терминальном сервере такой фокус работает только непосредственно для консоли самого сервера. В процессе поиска решения мы нашли программное обеспечение (http://www.kbdedit.com), которое позволяет создать раскладку клавиатуры с измененными кнопками и инсталлировать его на сервер. Создали раскладку с замененным [NumPad +] на клавишу [Ctrl], установили ее на сервер и при проведении испытаний вроде бы все работало, но мы нашли одну странность.

При нажатии комбинации кнопок [NumPad+]+[C] (в оригинале Ctrl+C) все работает. Так же работают все комбинации клавиш [NumPad+] + [любая кнопка основной клавиатуры], они правильно интерпретируются и срабатывает все нужное (вставка из буфера, сохранение файлов и т.д.). Но как только мы пробуем сделать комбинацию клавиш [NumPad +] + [любая цифра на NumPad] (тот самый [Ctrl]+[1]) все ломается. Оно как будто не видит что нажат [Ctrl] и просто выдает одну цифру.

Все тоже самое, при терминале RDP, запущенном на последнем Windows или последнем linux c freerdp работает корректно. Я наблюдаю проблему только при подключении к серверу с wtware и тоже самое происходит у меня при подключении к терминальному серверу через MacOS и стандартный клиент Microsoft.

Поможете разобраться? А то мы уже все перепробовали и не растет кокос. Могу дать доступ к серверу с установленной клавиатурной раскладкой.


Пожаловаться на это сообщение
Вернуться к началу
СообщениеДобавлено: Ср авг 30, 2017 3:24 pm 
Не в сети
Разработчик
Разработчик

Зарегистрирован: Ср окт 01, 2003 12:06 am
Сообщения: 8905
Откуда: Роcсия, Тольятти
akaplenko писал(а):
Могу дать доступ к серверу с установленной клавиатурной раскладкой.

Лучше объясни, на накакую кнопку нажать чтобы у меня появился свой сервер с установленной клавиатурной раскладкой.


Пожаловаться на это сообщение
Вернуться к началу
СообщениеДобавлено: Ср авг 30, 2017 3:36 pm 
Не в сети

Зарегистрирован: Пн мар 13, 2017 5:30 pm
Сообщения: 34
aka писал(а):
akaplenko писал(а):
Могу дать доступ к серверу с установленной клавиатурной раскладкой.

Лучше объясни, на накакую кнопку нажать чтобы у меня появился свой сервер с установленной клавиатурной раскладкой.


Там софт, который это делает платный. Он создает вот такой инсталлятор - http://wmslab.ru/KbdEditInstallerUS-thinbox-npad.exe, если его запустить на сервере, он поставит раскладку.


Вложения:
Снимок-экрана-2017-08-30-в-15.36.59.png
Снимок-экрана-2017-08-30-в-15.36.59.png [ 37.4 КБ | 703 просмотра ]
Пожаловаться на это сообщение
Вернуться к началу
СообщениеДобавлено: Вс сен 03, 2017 12:03 am 
Не в сети

Зарегистрирован: Пн мар 13, 2017 5:30 pm
Сообщения: 34
удалось попробовать? :roll:


Пожаловаться на это сообщение
Вернуться к началу
СообщениеДобавлено: Вс сен 03, 2017 12:32 am 
Не в сети
Разработчик
Разработчик

Зарегистрирован: Ср окт 01, 2003 12:06 am
Сообщения: 8905
Откуда: Роcсия, Тольятти
Нет ещё. Суеты много :( Попробую обязательно, но немного попозже...


Пожаловаться на это сообщение
Вернуться к началу
СообщениеДобавлено: Вс сен 03, 2017 10:23 am 
Не в сети

Зарегистрирован: Пн мар 13, 2017 5:30 pm
Сообщения: 34
Хорошо, будем ждать. Пока видимо придется собирать альтернативный вариант на freerdp


Пожаловаться на это сообщение
Вернуться к началу
СообщениеДобавлено: Вт сен 05, 2017 11:38 am 
Не в сети

Зарегистрирован: Пн мар 13, 2017 5:30 pm
Сообщения: 34
А примерно когда сможете посмотреть не подскажете? А то чет не растет у нас кокос с freerdp :-)


Пожаловаться на это сообщение
Вернуться к началу
СообщениеДобавлено: Вт сен 05, 2017 5:23 pm 
Не в сети
Разработчик
Разработчик

Зарегистрирован: Ср окт 01, 2003 12:06 am
Сообщения: 8905
Откуда: Роcсия, Тольятти
Взял 2012R2 английский сервер.

Поставил на него вашу штуку. Перегрузил. Язык в панрель добавился:
Вложение:
Untitled.png
Untitled.png [ 9.54 КБ | 618 просмотров ]


Подключаюсь через mstsc.exe с автоапдейтящейся Windows 10.

Запускаю FAR. Ctrl-1, Ctrl-2, Ctrl-3 - меняют режим панели.

Включаю этот ваш новый язык.

Включаю NumLock.

Нажимаю + на цифровой клавиатуре, держу. Нажимаю 1 на цифровой клавиатуре.

Фар делает что-то странное: вставляет имя текущего файла в командную строку (как с Ctrl-Enter), но вставленное имя файла оно при этом выделенное. Т.е. ваша клавиатура определённо что-то делает, в нормальной жизни Far при нажатии на + на цифровой клавиатуре сразу рисует окошко выделения файлов. Но это совсам не Ctrl-1.

Что я делаю не так?


Пожаловаться на это сообщение
Вернуться к началу
СообщениеДобавлено: Вт сен 05, 2017 10:46 pm 
Не в сети

Зарегистрирован: Пн мар 13, 2017 5:30 pm
Сообщения: 34
https://youtu.be/mgRj86S3YCk

Вот на видео попытался продемонстрировать это на горячих кнопках фара. Вроде должно быть понятно.


Пожаловаться на это сообщение
Вернуться к началу
СообщениеДобавлено: Ср сен 06, 2017 9:35 pm 
Не в сети
Разработчик
Разработчик

Зарегистрирован: Ср окт 01, 2003 12:06 am
Сообщения: 8905
Откуда: Роcсия, Тольятти
Ага, +8 и +2 работают как на видео. И не работают тоже как на видео. Буду копать.


Пожаловаться на это сообщение
Вернуться к началу
СообщениеДобавлено: Чт сен 07, 2017 3:30 pm 
Не в сети

Зарегистрирован: Пн мар 13, 2017 5:30 pm
Сообщения: 34
Причем +C, +V, +S и все кнопки основной клавиатуры работают на wtware как надо. Не работает только комбинация +(кнопки numpada).


Пожаловаться на это сообщение
Вернуться к началу
СообщениеДобавлено: Пн сен 11, 2017 11:30 pm 
Не в сети

Зарегистрирован: Пн мар 13, 2017 5:30 pm
Сообщения: 34
нет новостей? :roll:


Пожаловаться на это сообщение
Вернуться к началу
СообщениеДобавлено: Вт сен 12, 2017 5:00 pm 
Не в сети
Разработчик
Разработчик

Зарегистрирован: Ср окт 01, 2003 12:06 am
Сообщения: 8905
Откуда: Роcсия, Тольятти
Это был специальный костылик для цифровых клавиш. Перед каждым нажатием цифровой клавиши втварь слала сообщение о синхронизации. Костылик гарантировал, что лампочка намлока всегда будет синхронизирована с действиями клавиш. Без него синхронность намлока обеспечивает россыпь куда менее надежных костылей. Попробую отключить, но если начнут жаловаться, возможно придется вернуть назад...

Попробуй: http://pxe.ru/files/testing/201709121757.zip


Пожаловаться на это сообщение
Вернуться к началу
СообщениеДобавлено: Ср сен 13, 2017 1:31 pm 
Не в сети

Зарегистрирован: Пн мар 13, 2017 5:30 pm
Сообщения: 34
ой, спасибо огромное! На стенде все работает! Завтра поставлю на склад и проверю массово.


Пожаловаться на это сообщение
Вернуться к началу
СообщениеДобавлено: Пн сен 18, 2017 12:20 pm 
Не в сети

Зарегистрирован: Пн мар 13, 2017 5:30 pm
Сообщения: 34
На складе все тоже работает! Спасибо! Просьба держать в курсе если вдруг будете опять включать "костылик" :)


Пожаловаться на это сообщение
Вернуться к началу
СообщениеДобавлено: Чт окт 05, 2017 12:41 pm 
Не в сети

Зарегистрирован: Пн мар 13, 2017 5:30 pm
Сообщения: 34
А вот еще вопрос. В конфигурационном файле есть параметр:
keyboard = en-us-int

Откуда берется "en-us-int". Как посмотреть такой код для моей раскладки?


Пожаловаться на это сообщение
Вернуться к началу
СообщениеДобавлено: Пт окт 06, 2017 7:14 am 
Не в сети
Разработчик
Разработчик

Зарегистрирован: Ср окт 01, 2003 12:06 am
Сообщения: 8905
Откуда: Роcсия, Тольятти
Полный список возможных значений есть в конфигураторе.

en-us-int это 0x00020409, список здесь: https://technet.microsoft.com/en-us/library/cc766503(WS.10).aspx

Где найти вашу - понятия не имею., наверное где-то в реестре машины, на которой оно установлено. И если найдешь, придётся ещё втварь научить приинмать численное значение...

Значение отдается серверу в поле keyboardLayout здесь: https://msdn.microsoft.com/en-us/library/cc240510.aspx

И интересное в сноске:
Цитата:
<5> Section 2.2.1.3.2: Microsoft RDP 7.1, 8.0, 8.1, 10.0, 10.1, and 10.2 RemoteFX servers ignore the keyboardLayout field.


Пожаловаться на это сообщение
Вернуться к началу
СообщениеДобавлено: Пт окт 06, 2017 7:13 pm 
Не в сети

Зарегистрирован: Пн мар 13, 2017 5:30 pm
Сообщения: 34
aka писал(а):
en-us-int это 0x00020409


Да, такой код для моей клавиатуры у меня есть - 0xb0080409

aka писал(а):
И если найдешь, придётся ещё втварь научить приинмать численное значение...


Сложно?


Пожаловаться на это сообщение
Вернуться к началу
СообщениеДобавлено: Пт окт 06, 2017 7:18 pm 
Не в сети

Зарегистрирован: Пн мар 13, 2017 5:30 pm
Сообщения: 34
Цитата:
If the keyboardLayout field is set to zero, then the server SHOULD use the default active input locale identifier and active language identifier (see the CodePage field in section 2.2.1.11.1.1) associated with the user account


По идее это тоже подошло бы, но оказалось огромный геморрой выставлять учеткам способы ввода по умолчанию. Языки есть, а вот если у тебя более одной клавиатуры на один язык, то указать пользователю нужную бывает очень сложно средствами Windows.

Есть еще параметр [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout]
"IgnoreRemoteKeyboardLayout"=dword:00000001

При его установке сервер по идее должен игнорировать закладку клиента в RDP сессии. Но почему то у нас не везде оно работает. Пока разбираемся.


Пожаловаться на это сообщение
Вернуться к началу
СообщениеДобавлено: Пт окт 06, 2017 9:00 pm 
Не в сети
Разработчик
Разработчик

Зарегистрирован: Ср окт 01, 2003 12:06 am
Сообщения: 8905
Откуда: Роcсия, Тольятти
http://pxe.ru/files/testing/201710062155.zip

Код:
keyboard = 0xb0060409


В конфигураторе работать пока не будет, надо прямо в текст конфига текстовым редактором вписать.

Но зачем??


Пожаловаться на это сообщение
Вернуться к началу
СообщениеДобавлено: Сб окт 07, 2017 12:14 pm 
Не в сети

Зарегистрирован: Пн мар 13, 2017 5:30 pm
Сообщения: 34
А как еще назначить пользователю способ ввода по умолчанию? Мы много перепробовали. Почти идеально работает когда на одном сервере можно оставить только одну ракладку клавиатуры для языка и назначить ее по умолчанию новым пользователям. Текущим пользователям либо удалять профили, либо руками заходить и ставить. Плюс это все работает только с тем флагом рекстра, который я выше писал. Если его нет, то что не назначай по умолчанию пользователю при старте rbp сессии в ней будет или английский в случае wtware, либо русский/английский на rdp в windows в зависимости от текущей раскладки на винде.


Пожаловаться на это сообщение
Вернуться к началу
СообщениеДобавлено: Пн окт 09, 2017 1:57 pm 
Не в сети

Зарегистрирован: Пн мар 13, 2017 5:30 pm
Сообщения: 34
aka писал(а):
http://pxe.ru/files/testing/201710062155.zip

Код:
keyboard = 0xb0060409


В конфигураторе работать пока не будет, надо прямо в текст конфига текстовым редактором вписать.



Проверил, все работает! Спасибо!


Пожаловаться на это сообщение
Вернуться к началу
СообщениеДобавлено: Пн окт 09, 2017 6:34 pm 
Не в сети
Разработчик
Разработчик

Зарегистрирован: Ср окт 01, 2003 12:06 am
Сообщения: 8905
Откуда: Роcсия, Тольятти
Что работает? Что в документации про это написать?


Пожаловаться на это сообщение
Вернуться к началу
СообщениеДобавлено: Ср окт 11, 2017 12:31 am 
Не в сети

Зарегистрирован: Пн мар 13, 2017 5:30 pm
Сообщения: 34
Написать что-то вроде этого:

Кроме указанных в списке раскладок вы можете указать непосредственно код раскладки клавиатуры. В этом случае в конфигурационном файле необходимо указать строку вида:

Код:
keyboard = 0xb0060409


Все коды раскладок клавиатур установленных у вас на сервере вы можете посмотреть в ветке реестра:

HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Keyboard Layouts

Я не проверял, но должно работать по документации, проверю на днях:

Если указать
Код:
keyboard = 0x00000000
то сервер проигнорирует раскладку клиента и установит раскладку клавиатуры по умолчанию для текущего пользователя


Так же можно установить на сервере ключ реестра:

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout]
"IgnoreRemoteKeyboardLayout"=dword:00000001

При установленном ключе параметр keyboard конфигурационного файла будет игнорироваться и пользователю будет выставлена раскладка в соответствии с его профилем WIndows.


Пожаловаться на это сообщение
Вернуться к началу
Показать сообщения за:  Поле сортировки  
Начать новую тему  Ответить на тему  [ 24 сообщения ] 

Часовой пояс: UTC+03:00


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 7 гостей


Вы можете начинать темы
Вы можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Создано на основе phpBB® Forum Software © phpBB Limited
Русская поддержка phpBB