2009-06-03 7 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을 사용할 수 있습니다. 그러면 시스템을 시작한 이후의 시간 (ms)이 표시됩니다. 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 ut 2008에는 Windows 2008 서버의 가동 시간을 찾는 훨씬 쉬운 방법이 있습니다.

  • 작업 관리자> 성능> 가동 시간

Task Manager

관련 문제