5

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

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

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

4

6 回答 6

2

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

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

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

于 2011-07-17T07:18:07.947 回答
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);
}

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

于 2009-06-03T20:16:31.293 回答
2

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

于 2009-06-03T20:18:18.950 回答
1

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

C:\>uptime
\\SPOCK has been up for: 2 day(s), 0 hour(s), 45 minute(s), 34 second(s)
于 2009-06-03T20:30:45.383 回答
1

上面的答案适用于 Windows Server 2008 之前的系统,但对于 Windows 2008,有一种更简单的方法可以找到 Windows 2008 服务器的正常运行时间。

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

任务管理器

于 2012-09-24T22:26:49.923 回答
0

难道你不能只记录你的应用程序执行的事件数。然后在计数器达到阈值时停止?如果您的应用程序包含服务,那么它可以作为服务的一部分嵌入,该服务将通过 Windows 会话重新启动。我怀疑这就是 SMTP 服务器的工作方式,至少这是我实现类似功能的最简单方法。它会让大多数新手/中级系统管理员重新启动机器,而聪明的人可能无论如何都应该免费拥有该软件。

于 2009-06-03T20:28:01.287 回答