让Windows只显示一个程序给用户看

5
所以我被委托负责让一个小公司的所有计算机只能访问一个网站,有点像网络自助服务。在尝试了很多白名单网络过滤软件后,发现没有符合公司预算并真正做到他们想要的(阻止用户访问除IE之外的所有程序,而且IE只能访问一个域名)。虽然我不是世界上最优秀的程序员,但我认为我可以编写一个非常简单的C#浏览器,只允许访问特定域,并强制用户使用它。问题是C#依赖于Windows中存在的其他东西才能正常工作。如果可以设置Windows机器,使用户登录时所有Windows功能都被隐藏,但仍在后台运行,并且运行一个特定的程序,那么这个C#浏览器将在正确的域上启动,这将是用户所能做的全部。是否有人知道如何实现这一点?

欢迎提供其他解决方案。我更喜欢适用于各个单独机器上的用户特定解决方案,而不是网络过滤或更高级别的解决方案。这样我可以在维护计算机时访问完整的Web和计算机,因为如果是网络级别,用户可以访问邻近办公室中的众多WiFi网络之一。

哦,对了,有些机器是Windows 7,其他机器则运行XP。


切换到另一个虚拟桌面。Windows 系统自身提供了支持,没有逃离虚拟桌面的方式。没有任务栏等。 - osgx
我不确定我理解你的建议。什么是虚拟桌面?你是在谈论VMWare还是Virtual box? - Matt Steadman
Matt Steadman,这是Windows本身的功能,没有任何额外的软件。您可以创建几个桌面(这就是您在屏幕上看到的所有内容),并且可以通过一些win32调用在它们之间切换。当您在第二个桌面时,第一个桌面中的任何内容都不可见。这有点像MacOsX中的http://en.wikipedia.org/wiki/File:Spaces.jpg,但几乎不被使用。请在http://en.wikipedia.org/wiki/Virtual_desktop上了解更多概念。用户无法切换虚拟桌面,也无法启动“任务管理器”。 - osgx
1个回答

1

我建议您使用user32中的CreateDesktop/ SwitchDesktop WinAPI调用。

例如:http://msdn.microsoft.com/en-us/library/ms686347(v=vs.85).aspx

不知道如何从C#中调用,但我认为这是可能的。

因此,在您的简单C#浏览器(在其启动时)或单独的应用程序中集成桌面创建和切换。将此应用程序(或浏览器)添加到用户的自启动项中。

当您进行桌面切换时,请非常小心,因为很难(我认为是不可能的)切换回来。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接