如何以编程方式出于安全原因替换或阻止Windows任务栏和桌面?

时间:2013-07-17 16:29:13

标签: windows delphi desktop

像一些网络咖啡应用程序禁用用户使用任何其他应用程序的能力,但只有那些在网络管理员应用程序面板中启动的应用程序,我在互联网上搜索了一些在Delphi中执行此操作的方法:

  • 删除Windows任务栏;
  • 禁用Alt + Tab功能;
  • 禁用任务管理器;
  • 能够在配置面板中执行/撤消更改。

如果是系统管理员的偏好,这些需求是为了防止用户下载病毒并更改Windows配置甚至玩游戏。 自己的程序将作为授权应用程序在其中运行的容器,就像它是MDI应用程序一样。那已经有效了

当然,系统管理员可以选择禁用或恢复。

有没有办法在运行时使用 Delphi XE3 制作这四种配置?

2 个答案:

答案 0 :(得分:3)

我不熟悉Delphi。我也不确定在运行期间是否可行。但你可以做到以下几点:

  1. 写入注册表以阻止alt-tab see this
  2. 再次写入注册表以禁用任务管理器see this
  3. 听起来您可以通过注册表see this禁用任务栏。
  4. 在您的控制面板上有选项,当他们点击保存时,保存并重新启动计算机。
  5. 这是Delphi可以写入注册表(我相信C#和C ++可以)。如果没有,您可以创建.reg文件并通过使用参数调用cmd.exe来执行这些文件。我认为这会导致一些弹出窗口。

    更新:您可以通过删除explorer.exe然后再次加载来加载注册表更改而无需注销。这可能只会加载部分更新的注册表。

答案 1 :(得分:3)

我建议您将硬件启动到Linux中,然后使用Windows中现有的kiosk模式安全设置运行尽可能锁定的Windows虚拟机。然后,此VM在VM引导时运行MDI应用程序。当MDI应用程序存在时,VM将恢复为已知正常Windows配置的快照。

您剥离了Linux操作系统,仅包含托管Windows VM所需的最小组件。

我假设您的MDI窗口只会托管您的组织编写的应用程序,而不是任意Windows可执行文件。否则你要求重新编写Windows本身,这将是不可能的。