views:

5931

answers:

9

I'm developing an application in C++ that's partially driven by touch-screen on Windows XP Embedded. Some text entry will be necessary for the user. So far we've been using the standard Windows On-Screen Keyboard (osk.exe), but there are two main problems:

  1. It's rather small on a higher resolution screen which will probably make it hard for users to hit the right keys
  2. It's too "ugly" for the customer, who'd like a slicker on-screen keyboard that integrates better with the custom look-and-feel of the application so far.

Therefore I'm looking for alternatives for the Windows On-Screen Keyboard (osk.exe) that allow a larger size of buttons and can be skinned. Ideally it would have a BSD-like license for unburdened integration into a commercial app, but a royalty-free commercial solution could work.

Do you know of any such applications, or have you had a similar project where you solved the issue in another way?

+1  A: 

Why not write your own keyboard UI? This would (should) be relatively trivial and give you complete control over its look and feel.

Richard Ev
Well, the project is quite time and resource-bound so I'd rather not spend too much time reinventing something that may already exist out there. Implementing myself is an option, but the last option I'd like to take.
MadKeithV
We implemented our own in about the time it would have taken to integrate a third party OSK. So much for time and resources...
EricSchaefer
A: 

I programmed a On Screen Keyboard in Java. This is working very fine when you want to tip into Java components and Java frames. When you want to tip in every open window you have to send the key event by implementing Robot sender. The problem i have is that the focus owner get the sended key and when you open the keyboard the keyboard has the focus. You can not realy implement a global Java keyboard, as far as i know.

When you only want to use the Keyboard for Java, use Java. Otherwise you should use another language.

You should use a native language where you can handle the OS focus owner or a language where you can completly disable the keyboard focus but also can bring the keyboard to the front of the screen

Markus Lausberg
+5  A: 

We are using Click-N-Type for our systems. It is completely resizable. It has some customization possibilities, but I never tried them. We use it on "normal" Windows XP, but it should work on Windows XP embedded also.

Dani van der Meer
This looks promising, there is a hint that bitmaps could be used as key faces so it might be skinnable.
MadKeithV
One nice plus to this program is the ability to create custom keyboard layouts - for example for users that never need to enter in certain letters/numbers.
John M
A: 

Take a look at chessware virtual keyboard.

A: 

http://wosk.codeplex.com/

Simon
+4  A: 

I know this question is tagged 'c++', but here's an option for .Net that I found and integrated with less than 5 minutes work. (I've looked, and there isn't a .Net flavour of this question, and I guess it could be ported to C++ with very little effort too).

It uses the standard Windows On-Screen Keyboard (osk.exe), resizes it, docks it to the bottom of the screen and removes the title and menu bars, all from one call in your application.

The Code Project - Manage Windows XP On Screen Keyboard

The download is a single VB.Net class.

Andrew
That's a cool late answer actually, and even though the source is in .NET it might be possible to apply the same solution in a C++ environment. Thanks for the input.
MadKeithV
+1  A: 

please check WPF Component(http://fpscomponents.com/Product.aspx?id=8) that is fully customizable by inbuilt editor. So programmer can fill it with own language and define layout!

+1  A: 

Check johngnazzo code:

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

Madchen
A: 

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

Millit