如何创建类似于信息亭的UI,以便用户永远不会退出或切换到另一个应用程序?

LaB*_*cca 9 delphi kiosk-mode

我需要创建一个简单的Delphi应用程序,kiosk风格.

这是一个非常简单的事情,一个表单,用户写一些个人信息来注册一个事件.4 TEdit和TButton.

我想要实现的是避免用户执行任何不同的操作,然后键入TEdit或单击TButton.例如,我不希望他做ALT TAB(切换应用程序),按键盘上的Windows键,执行ctrl-alt-canc等...

我可以添加一个passowrd保护按钮来启用/禁用这个"Kiosk模式",这样我需要退出kiosk模式我只需按下该按钮然后退出.

如何在Delphi中实现这种"自助服务终端模式"而不会手动拦截所有按键?或者是否有人已经开发了这个以便它可以共享?

vcl*_*per 14

我认为你最好创建一个新的桌面,并在那里运行你的应用程序.当您的应用完成后,您可以恢复用户的桌面.这就是Windows登录屏幕的工作原理.当然,Windows登录屏幕使用特殊的安全桌面.您的应用程序位于单独的桌面中将被隔离.您将拥有一个没有开始菜单,任务栏或桌面图标的桌面背景,因为explorer.exe没有自动运行.当然,可以使用任务管理器启动新进程,但Windows中的桌面是安全对象; 因此,如果你愿意,你可以限制.当然,如果您的应用具有足够的权限.

要创建新桌面,可以使用CreateDesktop Windows API,并切换到新创建的桌面,可以使用OpenDesktop功能.


Ger*_*lí- 5

您可以尝试更改Windows Shell.
当您启动Windows时,您不执行默认shell(explorer.exe),您可以执行您的应用程序.

在互联网上你可以找到替代Shell(更有吸引力)到默认窗口,如:

此选项用于您正在开发的应用程序中的类似物.售货亭或TPV.
要更改默认应用程序,您必须修改注册表项:

在Win3.x和Win9x中,SYSTEM.INI文件:

[boot]
shell=MiAplicacion.exe
Run Code Online (Sandbox Code Playgroud)

在Win2k和WinXP中,使用Registry:

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon]
Shell=MiAplicacion.exe 
Run Code Online (Sandbox Code Playgroud)

如果您测试此选项,请考虑将模式转换为原始值(按钮或选项).您必须重新启动才能测试更改.

补充:此外,如果您在网上搜索一些类似的"Delphi Change default windows shell",您可以找到更多有关此内容的代码,示例和信息.

问候

PD:请原谅我的英语错误.