How to create a kiosk-like interface so that the user can never exit or switch to another application?

I need to create a simple Delphi application, a kiosk style.

This is a very simple thing, the only form in which the user writes some personal information to register for an event. 4 TEdit and TButton.

I want to ensure that the user does not do anything and then enter TEdit or click on TButton. For example, I do not want it to execute ALT TAB (switchin applications) by pressing the Windows key on the keyboard, doing ctrl-alt-canc, etc.

I can add a secure passowrd button that enables / disables this “kiosk mode”, so when I need to exit kiosk mode, I just press this button and exit.

How to achieve this "kiosk mode" in Delphi without intercepting all keystrokes manually? Or has someone already designed this so that it can be shared?

+7
delphi kiosk-mode
source share
3 answers

I think you better create a new desktop and run the application there. When your application is complete, you can return the user's desktop. This is how the Windows login screen works. Of course, the Windows login screen uses a special secure desktop. Your application on a separate desktop will be isolated. You will have a desktop background without Start, Taskbar, or Desktop icons, since explorer.exe does not start automatically. Of course, you can start a new process using the task manager, but desktop computers in Windows are protected objects; so you can make restrictions if you want. Of course, if your application has sufficient permissions.

You can use the CreateDesktop Windows API to create a new desktop, and you can use the OpenDesktop function to switch to the newly created desktop.

+12
source share

You can try changing the shell of Windows.
When you launch windows, you are not running the default shell (explorer.exe), you can run your application.

On the Internet, you can find alternative Shells (more attractive) for default windows, for example:

This option is used for the purposes of similar applications that you are developing. Kiosks or TPV.
To change the default application, you must change the registry key:

In Win3.x and Win9x, the SYSTEM.INI file is:

[boot] shell=MiAplicacion.exe 

In Win2k and WinXP, use the Registry:

 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon] Shell=MiAplicacion.exe 

If you check this option, think that the mode will turn the configuration back to its original value (button or option). You must reboot to test the changes.

ADDED: In addition, if you search the Internet for something similar in this “Delphi Change default windows shell”, you can find more code, samples, and information about it.

Hi

PD: Sorry about my mistakes with the English language.

+4
source share

Well, but if someone can open taskmgr, he can just create a new task and run explorer.exe from there so that it is not really safe, though ...

Ok Taskmgr can be stopped using policies ... Well, to disable the cad sequence, you can use the saslibex that Remko Weijnen created, you can find here: SASLibEx

the best regards
s!

+1
source share

All Articles