Я разработал довольно простой OSK для нашего приложения для киосков. Он работает, открывая события onfocus, запущенные текстовыми полями в нашем приложении .net. Проблема в том, что мы пытаемся интегрироваться с единой службой регистрации, что означает, что мы будем открывать элемент управления webbrowser для обработки аутентификации сторонней стороны. Поскольку текстовые поля для страницы единого входа находятся внутри элемента управления браузера, я не совсем уверен, что лучший способ использовать существующую OSK, или если я даже могу.Экранная клавиатура .NET Kiosk
Мои первоначальные мысли - попробовать какую-то инъекцию javascript, чтобы добавить события, на которые может реагировать мое приложение. Затем я должен быть в состоянии сказать, когда текстовое поле получает фокус, и откройте OSK. После закрытия OSK я могу обновить поле формы с введенным значением. Моя проблема заключается в том, что она кажется довольно хрупкой. Изменение html/js на странице SSO может испортить процесс входа для всех киосков.
Другой вариант, который я вижу, - это отказаться от OSK, который у меня есть, и использовать более низкий уровень. Проблема, которую я вижу при таком подходе, - это низкая программируемость программного обеспечения OSK, которое, похоже, я нахожу. По сути, мне нужно было запустить сторонний exe всякий раз, когда мне нужно было вводить клавиатуру от пользователя, и это не казалось бы гладкой интеграцией, как я мог бы получить с существующим решением.
Я мог бы использовать сочетание двух, используя нашу OSK для обычных элементов управления winforms и переключаясь на стороннюю OSK, когда мне нужно использовать webcontrol, но я думаю, что каждый мог увидеть проблему с этим подходом.
Любые советы/предложения о том, куда идти, и любая помощь по внедрению общей инъекции javascript, чтобы позволить мне использовать мою существующую OSK, было бы здорово!