2011-06-28 16 views
0

WPFアプリケーションを1回だけ実行したい。私はこれに問題はない。
私の問題は、Windowsが現在再起動しているかどうかを確認する方法です。Windowsが再起動したかどうかを確認するには?

+2

あなたは自動的にWindowsの再起動を再起動するには、このWPFアプリケーションを望んでいますか?私はあなたがやろうとしていることにちょっとした情報が必要だと思います。 –

答えて

4

システム稼働時間と最後の実行時間を確認して保存し、現在の稼働時間と比較することができます。

Retrieve system uptime using C#

一部psudeocode:

DateTime computerLastStarted = Now - Uptime; 
    if (computerLastStarted > storedComputerLastStarted + or - tollerance) { 
     storedComputerLastStarted = computerLastStarted; 
     StartProgram(); 
    } 
6

あなたがファイルをディスクに書き込み、その後すぐにMoveFileExを使用して '再起動時に削除' としてそれをマークすることができます:

if(File.Exists(CheckFileName)) 
    return false; // already ran once 
else { 
    // write out the check file 
    using(checkFile = File.Create(CheckFileName, ...)) { 
     // and mark it as delete on boot 
     MoveFileEx(checkFile.SafeHandle, 
     null, 
     MOVEFILE_DELAY_UNTIL_REBOOT); 
     return true; // ok to run 
    } 
} 
+0

+1クールなアプローチ。 –

関連する問題