C#让程序在后台运行,直到计算机完全关闭

时间:2012-08-07 17:35:55

标签: c# shutdown

基本上,我正在制作一个程序,在晚上11点之后阻止上网。但我唯一的问题是有很多方法可以绕过它,比如关闭计算机,用户只需要等到操作系统本身关闭进程然后取消关机操作(Windows 7)。

有什么方法可以确保程序在关闭电脑或其他任何东西之前不会被终止?

2 个答案:

答案 0 :(得分:1)

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

如果路由器方法对您不起作用,并且您必须在软件中阻止互联网访问,我首先会建议您调查Windows“本地策略”或“组策略”,看看它们是否可以执行您想要的操作。

如果这太复杂了,请尝试找一个现成的解决方案。查看ZoneAlarm或NetNanny,看看其中一个是否可以解决问题。

但是如果你一直想写一个C#程序来为你做这件事,你可能想看看writing a Windows Service。编写和部署服务更复杂,但它们可以配置为在启动时运行,而不是像普通桌面应用程序那样从属于用户会话。

答案 1 :(得分:0)

这实际上有些复杂。它就像一种病毒 - 你如何让它一直运行?

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

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