2013-08-14 3 views
4

나는 Windows 응용 프로그램을 가지고 있으며 사용자가 해당 Windows 응용 프로그램을 열거 나 실행중인 해당 시스템의 시간을 변경하면 모든 이벤트를 원합니다.Windows 응용 프로그램의 시스템 시간 변경 처리

변경된 시간이나 특정 시간 또는 시간/날짜의 시스템 변경 이벤트를 어떻게받을 수 있습니까?

+1

[로컬 시스템에서 시간 변경 이벤트 구독] 가능한 복제본 (http://stackoverflow.com/questions/3787299/subscribe-to-event-of-changing-time-on-local-system) – user

답변

7

SystemEvents.TimeChanged 이벤트에 가입 할 수 있습니다.

는 다음을 수행, 위의 이벤트에 등록하려면,

1.Create TimeChanged EventHander합니다.

private void time_Changed(object sender, EventArgs e) 
    { 
     MessageBox.Show("Time Changed"); 
    } 

위의 이벤트 처리기를 SystemEvents.TimeChanged 이벤트에 추가하십시오. "사용자가 시스템 클럭에서 시간을 변경하면 을"

SystemEvents.TimeChanged += time_Changed; 
+0

그 방법을 사용할 수 있습니까? 나는 창문 애플 리케이션에 새로운 오전 여기 조금 혼란스러워. –

+0

예, 메시지 펌프가 실행 중인지 확인하십시오. 메시지 펌프를 만들지 않으면 콘솔 응용 프로그램에서 작동하지 않습니다. 예를 보려면 http://stackoverflow.com/a/764904/56778을 참조하십시오. –

+0

코드를 작성했지만 시스템 시간이 변경되면 메시지 상자가 실행되지 않습니다 ... 아래 코드를 참조하십시오. 공용 부분 클래스 Form1 : 양식 { public static Event EventHandler TimeChanged; public Form1() { InitializeComponent(); TimeChanged + = Form1_TimeChanged; } protected void Form1_TimeChanged (개체 보낸 사람, EventArgs e) { MessageBox.Show (DateTime.Now.ToString()); } } –

0

...or any event of system change of time/date? SystemEvents.TimeChanged에만 트리거합니다.

시스템 시간 변경은 시스템 또는 사용자가 시스템 시간을 조정하여 발생할 수 있습니다. 이러한 시스템 시간 조정을 캡처하려면 GetSystemTimeAdjustment function을 사용할 수 있습니다.

관련 문제