2012-08-07 63 views
0

基本上,我正在制定一个程序,在下午11点后阻止互联网访问。但我唯一的问题是有很多方法可以绕过它,例如关闭计算机,用户只需等待操作系统本身关闭进程,然后取消关闭操作(Windows 7)即可。C#保持程序在后台运行,直到计算机完全关闭

任何方式来确保该程序不会在PC关机或任何事情之前终止?

+1

“使用武力,卢克!” – 2012-08-07 17:37:29

+10

为什么不只是投资一个便宜的路由器,允许您配置访问时间表? – 2012-08-07 17:38:40

+0

只是一个猜测,但不应该可能与服务? – dowhilefor 2012-08-07 17:39:13

回答

0

这实际上有点复杂。这就像病毒 - 你如何保持它始终运行?

您可能想了解有关驱动程序。司机拥有最高的操作系统“信任”。他们可以物理访问计算机中的任何内容。除驱动程序或核心文件之外的任何内容都可能由用户手动关闭,以某种方式进行。

你可以做的另一件事是将文件“烧”成Kernal.DLL等。您可以使用计算机上的其他操作系统(例如Linux)或通过物理写入硬盘(不通过Windows的API)来完成此操作。要物理访问驱动程序,check this out.

1

如果您的目标是阻止Internet访问,我建议在您的路由器上而不是您的PC上执行此规则。这将是一个更简单,更可靠的解决方案。您的路由器可能已经支持该功能,但如果不支持,您可以购买新的消费级路由器(非常便宜)和/或安装自定义固件(请参阅Linksys WRT-54GL和公司的Tomato固件) 。

如果路由器方式不适合你,而且你必须阻止软件访问互联网,我首先会建议调查Windows“本地策略”或“组策略”,看看他们是否可以做你想做的事。

如果这对您的口味来说过于复杂,请尝试找到现成的解决方案。看看ZoneAlarm或NetNanny,看看他们中的一个是否会做到这一点。但如果你一心想编写一个C#程序来为你做,那么你可能想看看writing a Windows Service。服务编写和部署更复杂,但它们可以配置为在启动时运行,并且不会像常规桌面应用程序那样隶属于用户会话。