Click here to Skip to main content
15,885,757 members
Articles / Desktop Programming / Windows Forms

Manage Windows XP On Screen Keyboard

Rate me:
Please Sign up or sign in to vote.
4.25/5 (3 votes)
22 Apr 2009CPOL1 min read 53.7K   2.4K   22   6
Windows XP offers an On Screen Keyboard, but sometimes requires a little customization

Introduction

I was developing an application to be used on a panel PC and I faced the customer request to use only the touchscreen to enter any data required by my application. My first idea was to design by hand a form with as many buttons as a regular keyboard, but I changed my mind immediately. Next, after some web searching, I decided to use the standard on screen keyboard provided by Windows XP. 

Background

When you start the on screen keyboard (OSK.EXE) the first thing you can observe is that it is too small to be used with the resolution of a modern monitor, but the OSK doesn't allow you to resize it. This problem can be easily solved using the SetWindowPos API in order to set the requested size and position. The screen keyboard is presented as a usual application, so it has a window frame with control boxes and a menu. The control box could cause the keyboard application to close if the user clicks on the cross button (window close), and the menu is useless for the normal data entry. Nonetheless, the window frame and the menu consumes screen area. But how to remove these elements? The SetWindowLong API does the job. 

Using the Code

The class exposes three shared methods: 

VB.NET
'Shows the keyboard creating the process if necessary 
 ClKeyboard.Show()

'Hides the keyboard without killing the process  
 ClKeyboard.Hide()

'Kill the process that manages the keyboard 
ClKeyboard.Kill()  

When you call Show, the keyboard appears at the bottom of the screen, just above the taskbar, and is 350px tall while its width matches the screen width. These parameters are hard coded in the class, but they can be easily changed. 

Hope you enjoy this class. 

History

  • 22nd April, 2009: Initial post

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


Written By
Italy Italy
This member has not yet provided a Biography. Assume it's interesting and varied, and probably something to do with programming.

Comments and Discussions

 
SuggestionAnother possible way to remove the menu Pin
Member 908914913-Jun-12 12:34
Member 908914913-Jun-12 12:34 
QuestionUAC question Pin
inbox20-Aug-11 1:44
inbox20-Aug-11 1:44 
QuestionHow to prevent background color change when using WS_CHILD? Pin
Olongdomango14-Apr-10 0:22
Olongdomango14-Apr-10 0:22 
Questionpossible to view only number keyboard? Pin
Jenhuohuo11-Feb-10 23:59
Jenhuohuo11-Feb-10 23:59 
GeneralDemo application Pin
Deepak.Prahlad11-Aug-09 21:15
Deepak.Prahlad11-Aug-09 21:15 
GeneralYou may incluide a Demo compiled project... Pin
rodrilobo0222-Apr-09 15:12
rodrilobo0222-Apr-09 15:12 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.