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