如何让用户只与我的程序交互?

时间:2010-09-06 01:52:46

标签: c# .net windows winforms

我正在为呼叫中心编写软件。它有点像ATM程序:用户只能与它交互,而不能与底层Windows交互。用户登录Windows时会进行控制,当用户退出时,它会从Windows注销。

我怎么能在.NET中这样做?非常感谢演示。

谢谢。

4 个答案:

答案 0 :(得分:2)

替换Windows Shell。

我的意思是Explorer.exe,通过编辑Windows注册表。这对您来说不是登录,而是系统运行Explorer.exe,它包含您熟悉的“开始”菜单,任务栏和其他类似功能,运行您的程序。没有桌面,没有上下文菜单,没有任务栏或开始菜单。因此,使您的应用程序“Shell”或新的“Explorer.exe”。

但是,通过执行此操作,用户仍然可以访问Control + Alt + Delete,因此他们仍然可以访问Windows任务管理器,您还可以通过简单的注册表项输入禁用它。

这是最轻松,最简单的解决方案,因为您甚至不必担心禁用WindowsKey或其他烦恼等事情。

此注册表项如下:

SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion \ Winlogon

要修改的值的名称是:

贝壳

您只需输入值即可成为程序可执行文件的完全限定路径。您只想在HKEY_CURRENT_USER 下执行此操作,并且仅针对运行shell程序的帐户。所以你需要两个独立的账户。

  • 管理员帐户
    • 此帐户只是一个用于管理系统的普通密码保护帐户
  • 自助服务终端帐号
    • 此帐户将是始终登录的帐户,该帐户运行您的自定义shell(您的应用程序)

附加说明

要禁用任务管理器,注册表路径如下:

SOFTWARE \微软\的Windows \ CurrentVersion \政策\系统

值的名称是:

DisableTaskMgr

这是一个强制策略的DWORD值必须设置为'1'。

答案 1 :(得分:0)

我所做的是使用DirectX,只使用全屏和独占模式,您可以在此处看到一个小例子:http://www.directxtutorial.com/tutorial9/b-direct3dbasics/dx9B2.aspx

这是更多的工作,但它可以让你做你想做的事。

根据您拥有的控件,您可以使用组策略执行某些操作来限制人们可以在计算机上执行的操作。您可以查看人们如何在Windows上设置信息亭应用程序以获取一些想法。

答案 2 :(得分:0)

您要做的是以“kiosk模式”运行操作系统。

这需要使用组策略管理控制台来应用信息亭模式模板 - 作为其中一部分,您将应用程序注册为shell。

因此,没有任务栏或浏览器视图可以依赖。运行通常shell的唯一方法是将键盘连接到系统 - 按ctl-alt-delete并从弹出的taskmanager运行explorer。

如果用户要对控制台进行键盘访问,您甚至可以禁用标准任务管理器。您将需要实现某种启动explorer.exe接口,否则系统可能会变得有点难以管理:P

答案 3 :(得分:0)

您可以将应用程序窗口设置为始终位于顶部并覆盖整个屏幕。如果排除关闭窗口的按钮,则用户必须知道ALT + F4关闭窗口才能退出。这对我来说已经足够好了,我需要它。