While working on a touch screen kiosk i had to do a fair amount of work to figure out the best practices for designing, and building such a system. The biggest and most obvious component, dare i say secret, is that a touch screen Kiosk is nothing more than a standard web page. Yes, your typical web page being run on a machine whose only interface device is mouse clicks triggered by a touch to the screen. The system itself handles all the mappings between the mouse click and coordinates on the page the exact same way as a mouse interface device would. Simple right?
Not so simple when you try to take into account what browser you’ll be running your kiosk with. I’ve seen people write a custom desktop application whose sole purpose is to house an Internet Explorer browser object to create a full-screen browser without any file menu or title bar for the browser. These guys clearly didn’t do their research either because it’s pretty easy to create a full screen kiosk browser interface without the file menu along with disabling the touch screen users from interacting with the browser menus. No code required.
Using Internet Explorer launched with a simple command line parameter will cause the browser to open full screen, no menu options, and will not allow users to exit the browser without direct access to a keyboard. Since most touch screens use a virtual keyboard this doesn’t become a problem, otherwise what’s the point of a touch screen if you have to use a physical keyboard anyway?
Getting straight to it. All that is required to turn the standard Internet Explorer into a Kiosk interface is a the following command line argument for a shortcut to launch Internet Explorer.
"C:\Program Files\Internet Explorer\iexplore.exe" –k
.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, "Courier New", courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }
When Internet Explorer opens the browser it will be full-screen, display no file menus/status bar, and will not be able to be exited unless the key combo ALT-F4 or CTRL-W are used to close the browser. This secures the Kiosk environment from malicious users trying to close the browser to directly access the physical touch screen system. Pretty sweet huh? No code, no extra hassle, and now all you have to worry about now is securing your web interface from external non-kiosk activated attacks.
For those who prefer using Firefox, i won’t name names… or even myself, but there are a few add-ons built to provide kiosk functionality to the Firefox browser. Nothing, as I'm aware, built directly into the browser like Internet Explorer, but at least the ability is there at some level.
Programming