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

时间:2009-06-03 20:12:17

标签: c# .net restart

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

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

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

6 个答案:

答案 0 :(得分:2)

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

以下是如何在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);
}

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

答案 1 :(得分:2)

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

答案 2 :(得分:2)

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

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

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

答案 3 :(得分:1)

对于Windows平台,您可以使用uptime

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

答案 4 :(得分:1)

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

  • 任务管理器>表现>时间

Task Manager

答案 5 :(得分:0)

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