Какая экранная клавиатура для сенсорного экрана?

Я разрабатываю приложение на C ++, которое частично управляется сенсорным экраном в Windows XP Embedded. Пользователю потребуется ввести некоторый текст. До сих пор мы использовали стандартную экранную клавиатуру Windows (osk.exe), но есть две основные проблемы:

  1. Он довольно мал на экране с более высоким разрешением, поэтому пользователям, вероятно, будет сложно нажимать правильные клавиши.
  2. Это слишком «некрасиво» для клиента, который хотел бы гладкую экранную клавиатуру, которая до сих пор лучше интегрируется с настраиваемым внешним видом приложения.

Поэтому я ищу альтернативы экранной клавиатуре Windows (osk.exe), которые позволяют использовать кнопки большего размера и могут иметь скин. В идеале у него должна быть лицензия типа BSD для свободной интеграции в коммерческое приложение, но может работать и бесплатное коммерческое решение.

Знаете ли вы о таких приложениях, или у вас был подобный проект, в котором вы решили проблему другим способом?


person Joris Timmermans    schedule 01.12.2008    source источник


Ответы (8)


В наших системах мы используем Click-N-Type. Это полностью изменяемый размер. У него есть некоторые возможности настройки, но я никогда их не пробовал. Мы используем его в «нормальной» Windows XP, но он также должен работать и со встроенной Windows XP.

person Dani van der Meer    schedule 01.12.2008
comment
Это выглядит многообещающе, есть подсказка, что растровые изображения могут использоваться в качестве ключевых лиц, поэтому для них может быть изменен скин. - person Joris Timmermans; 01.12.2008
comment
Одним из приятных плюсов этой программы является возможность создавать собственные раскладки клавиатуры - например, для пользователей, которым никогда не нужно вводить определенные буквы / цифры. - person John M; 19.07.2010

Я знаю, что этот вопрос помечен как «c ++», но вот вариант для .Net, который я нашел и интегрировал с менее чем 5-минутной работой. (Я посмотрел, и нет .Net-вкуса этого вопроса, и я думаю, что его тоже можно было бы перенести на C ++ с очень небольшими усилиями).

Он использует стандартную экранную клавиатуру Windows (osk.exe), изменяет ее размер, прикрепляет к нижней части экрана и удаляет заголовок и строки меню - и все это за один вызов в вашем приложении.

Проект кода - управление Windows Экранная клавиатура XP

Загрузка - это единственный класс VB.Net.

person Andrew    schedule 01.06.2009
comment
На самом деле это крутой поздний ответ, и даже несмотря на то, что источник находится в .NET, возможно, можно применить то же решение в среде C ++. Спасибо за вклад. - person Joris Timmermans; 02.06.2009

проверьте компонент WPF (http://fpscomponents.com/Product.aspx?id=8), который полностью настраивается встроенным редактором. Так что программист может заполнить его собственным языком и определить макет!

person Community    schedule 23.12.2009

Проверьте код johngnazzo:

http://www.daniweb.com/forums/thread4548.html#

person Community    schedule 21.01.2010

Почему бы не написать собственный интерфейс клавиатуры? Это должно (должно быть) быть относительно тривиальным и дать вам полный контроль над его внешним видом.

person Richard Ev    schedule 01.12.2008
comment
Что ж, проект довольно ограничен по времени и ресурсам, поэтому я бы не стал тратить слишком много времени на изобретение того, что уже может существовать. Реализовать себя - это вариант, но последний вариант, которым я бы хотел воспользоваться. - person Joris Timmermans; 01.12.2008
comment
Мы внедрили нашу собственную примерно за то время, которое потребовалось бы для интеграции сторонней OSK. Так много времени и ресурсов ... - person EricSchaefer; 07.02.2009

Я запрограммировал экранную клавиатуру на Java. Это отлично работает, когда вы хотите добавить компоненты Java и фреймы Java. Если вы хотите давать чаевые в каждом открытом окне, вы должны отправить ключевое событие, реализовав робота-отправителя. У меня проблема в том, что владелец фокуса получает отправленный ключ, и когда вы открываете клавиатуру, клавиатура имеет фокус. Насколько я знаю, вы не можете реализовать глобальную клавиатуру Java.

Если вы хотите использовать клавиатуру только для Java, используйте Java. В противном случае вам следует использовать другой язык.

Вы должны использовать родной язык, на котором вы можете обрабатывать владельца фокуса ОС, или язык, на котором вы можете полностью отключить фокус клавиатуры, но также можете вывести клавиатуру на переднюю часть экрана.

person Markus Lausberg    schedule 01.12.2008

Взгляните на виртуальную клавиатуру chessware.

person Community    schedule 07.02.2009

http://hot-virtual-keyboard.com/

person Millit    schedule 01.03.2010