2009-06-03 17 views
5

試用版の制限として、Windowsセッションごとに最大10通の電子メールを受信できるコマンドラインSMTPメーラーを使用しました。あなたのコンピュータを再起動した場合、10個以上を受け取ることができます。私は、この種のシェアウェアの危機はかなりきれいだったと思って、私はアプリでそれを複製したいと思います。コンピュータが再起動されたかどうかをどのように確認できますか?

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

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

+3

何OSとどの言語? –

+0

Qは「Windowsセッション」と書いてありますので、Windowsを想定しても安全です。 – Cheeso

+0

os/langはWindows/Cです。 – ryeguy

答えて

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を提供する必要があります。

2

.NETを使用している場合は、Environment.TickCountを使用できます。これにより、システムが起動してからの経過時間が表示されます。 24日おきにロールオーバーするので、それを補う必要があります(気にしている場合)。

0

あなたのアプリケーションが実行したイベントの数のカウンターを保持するだけではいけません。カウンタがしきい値に達したら停止しますか?アプリケーションにサービスが含まれている場合、Windowsセッションで再起動されるサービスの一部として組み込むことができます。 SMTPサーバーがどのように機能しているのか疑問に思っています。少なくとも、そういうものを実装するのが最も簡単な方法です。それはほとんどの初心者/中間システム管理者が箱を再起動するのを保つでしょう。スマートなシステム管理者は、恐らくソフトウェアを無料で使う価値があります。

1

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

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

これはWindows Serverアプリケーションですか?私はWinXPでこれを持っていないようです。 – ryeguy

+0

XPではおそらく他のシステムでは動作しません – Anton

2

、統計のコンピュータをチェックしたい場合は

を起動し、コマンドプロンプト上のタイプ
C:\>net statistics server

一つは、最後の時間だった
Statistics since 22-Jun-11 10:46:20になりますコンピュータの起動

1

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

  • タスクマネージャ]> [パフォーマンス]> [アップ時間

Task Manager

関連する問題