delphi - 如何创建类似信息亭的 UI,以便用户永远无法退出它或切换到另一个应用程序?

标签 delphi kiosk-mode

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

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

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

我可以添加一个受密码保护的按钮来启用/禁用此“信息亭模式”,这样,当我需要退出信息亭模式时,我只需按该按钮即可退出。

如何在Delphi中实现这种“信息亭模式”而不手动拦截所有击键?或者是否有人已经开发了这个以便可以共享?

最佳答案

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

要创建新桌面,您可以使用 CreateDesktop Windows API,要切换到新创建的桌面,可以使用OpenDesktop函数。

关于delphi - 如何创建类似信息亭的 UI,以便用户永远无法退出它或切换到另一个应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30079384/

相关文章:

google-chrome - Chrome --kiosk-printing 有 1-2 分钟的滞后/延迟

ubuntu - 禁用向左和顶部滑动手势ubuntu

delphi - 处理在 TListView 后代中检查的项目

Delphi - 移动重叠的 TShapes

delphi - 调用 postmessage 返回 "access denied"

android - android 上的 chromium 中的 kiosk 模式或全屏

javascript - 在 Kiosk 模式下无法读取未定义的属性 'onLaunched'

delphi - 返回对象时为什么不直接使用Result变量呢?

delphi - Spring4D是否有WillReturnDefault对应的函数

android - 开发在 android 中以 kiosk 模式运行的应用程序