如何判断计算机是否已重新启动?

我曾经使用命令行SMTP邮件程序,作为试用版的限制,每个Windows会话允许您最多接收10封电子邮件。 如果您重新启动计算机,则可以再接收10台计算机。 我认为这种共享软件非常简洁,我想在我的应用程序中复制它。

我只是坚持如何做到这一点。 我知道如何限制用户的操作,但是如何在应用程序上次运行后重新启动计算机?

操作系统是Windows,语言是C#。

您应该能够在事件日志中查找事件,例如事件日志服务启动,它将告诉您计算机是否已重新启动。

以下是如何在C#中读取事件日志: http : //msdn.microsoft.com/en-us/library/k6b9a7h8%28VS.71%29.aspx

// C# foreach (System.Diagnostics.EventLogEntry entry in EventLog1.Entries) { Console.WriteLine(entry.Message); } 

注意:您应该提供您正在使用的语言和操作系统。

如果您使用的是.NET,则可以使用Environment.TickCount 。 这将为您提供自系统启动以来的ms数。 请注意,它每隔~24天滚动一次,因此您必须对此进行补偿(如果您在意)。

对于Windows,如果要检查计算机是否已启动

在命令提示符上键入
C:\>net statistics server

其中一项统计数据将是
Statistics since 22-Jun-11 10:46:20这是计算机最后一次启动

对于Windows平台,您可以使用正常运行时间 。

 C:\>uptime \\SPOCK has been up for: 2 day(s), 0 hour(s), 45 minute(s), 34 second(s) 

以上答案适用于Pre-Windows Server 2008系统,但对于Windows 2008,可以更轻松地查找Windows 2008服务器的正常运行时间。

  • 任务管理器>性能>运行时间

任务管理器

难道你不能只保留你的应用程序执行的事件数量的计数器。 当计数器达到阈值时停止? 如果您的应用程序包含服务,那么它可以作为服务的一部分嵌入,该服务将通过Windows会话重新启动。 我怀疑这是SMTP服务器的工作方式,至少这是我实现类似的最简单的方法。 这将使大多数新手/中级系统管理员重新开箱,而聪明的人可能应该免费获得该软件。