5

試用版の制限として、Windows セッションごとに最大 10 個の電子メールを受信できるコマンド ライン SMTP メーラーを使用したことがあります。コンピューターを再起動すると、さらに 10 個受け取ることができます。この種のシェアウェアの不自由さはかなり巧妙で、自分のアプリで再現したいと思っています。

私はそれを行う方法にこだわっています。ユーザーのアクションを制限する方法は知っていますが、アプリケーションが最後に実行されてからコンピューターが再起動されたかどうかを確認するにはどうすればよいですか?

OSはWindows、言語はC#です。

4

6 に答える 6

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);
}

注: 使用している言語と OS を提供する必要があります。

于 2009-06-03T20:16:31.293 に答える
2

.NET を使用している場合は、これにEnvironment.TickCountを使用できます。これにより、システムが起動してからのミリ秒数が得られます。〜24日ごとにロールオーバーすることに注意してください。そのため、それを補う必要があります(気にする場合)。

于 2009-06-03T20:18:18.950 に答える
2

Windows の場合、起動したコンピューターを確認する場合

コマンドプロンプトで入力
C:\>net statistics server

統計の 1 つは
Statistics since 22-Jun-11 10:46:20、コンピューターが最後に起動された時刻です。

于 2011-07-17T07:18:07.947 に答える
1

上記の答えは、Windows Server 2008より前のシステムの場合ですが、Windows 2008の場合、Windows2008サーバーの稼働時間を見つけるためのはるかに簡単な方法があります。

  • タスクマネージャー>パフォーマンス>稼働時間

タスクマネージャー

于 2012-09-24T22:26:49.923 に答える
1

Windowsプラットフォームの場合、稼働時間を使用できます。

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 に答える
0

アプリケーションが実行したイベント数のカウンターを保持できませんでしたか。そして、カウンターがしきい値に達したときに停止しますか? アプリケーションにサービスが含まれている場合、Windows セッションで再起動されるサービスの一部として埋め込むことができます。それがSMTPサーバーの仕組みだと思います。少なくとも、それは私がそのようなものを実装する最も簡単な方法です。これにより、ほとんどの初心者/中級システム管理者はボックスを再起動し続けることができ、賢明な管理者はおそらくソフトウェアを無料で入手する価値があります.

于 2009-06-03T20:28:01.287 に答える