使窗户只能运行一个用户可见的程序

问题描述:

所以我一直负责让一家小公司只能访问一个网站,有点像一个网站的所有计算机的任务。在使用了大量的白名单网页过滤软件之后,并没有发现公司预算中的任何内容都能满足他们的需求。 (阻止用户访问除IE以外的所有程序,IE只能访问一个域)我不是世界上最伟大的程序员,但我想我可以将一个非常简单的C#Web浏览器放在一起,只允许访问特定的域,使用户使用它。问题在于C#依靠Windows中存在的其他功能正常工作。如果可以设置Windows机器,以便用户登录时隐藏所有Windows功能,但仍然在后台运行,并且一个特定程序正在运行,则此C#Web浏览器将从右侧的域开始,然后这真的是用户可以做的所有事情。有谁知道一种方法来做到这一点?使窗户只能运行一个用户可见的程序

我的问题的其他解决方案将不胜感激。我更喜欢在个人计算机上使用特定用户的解决方案,而不是网络过滤器或更高级别的解决方案。这样,当我对它们进行维护时,我可以访问完整的网络和计算机,并且如果网络级别的用户可以访问邻近办事处提供的许多WiFi网络之一。

哦,是的,有些机器是Windows 7,而其他机器是XP。

+0

切换到另一个虚拟桌面。在它的窗口中有支持,并且无法从虚拟桌面转义。没有任务栏等 – osgx 2011-02-27 23:34:48

+0

不知道我理解你的建议。什么是虚拟桌面?你在谈论VMWare还是Virtual box? – 2011-02-27 23:40:42

+0

Matt Steadman,这是Windows本身的功能,没有任何额外的软件。您可以创建多个桌面(这是您在屏幕上看到的所有内容),您可以使用某些win32调用在它们之间切换。当你在第二个桌面时,第一个桌面上没有任何东西可见。它有点像MacOs中的http://en.wikipedia.org/wiki/File:Spaces.jpg,但几乎没有使用它。在http://en.wikipedia.org/wiki/Virtual_desktop上阅读有关概念的更多信息。用户不能切换虚拟桌面,也不能启动“任务管理器”。 – osgx 2011-02-27 23:45:44

我建议你使用CreateDesktop/SwitchDesktop来自user32的WinAPI调用。

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

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

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

要小心,当你做桌面切换时,是否很难(我认为不可能)切换回来。