2011-05-26 10 views
9

मैं अपने सी # एप्लिकेशन रन-टाइम के दौरान सिस्टम समय और दिनांक और स्वचालित डेलाइट बचत समय परिवर्तन के मैन्युअल परिवर्तन के दौरान पता लगाना चाहता हूं।विंडोज इवेंट लॉग में मैन्युअल टाइम चेंज और डेलाइट बचत समय की घटनाओं का पता लगाएं

इसके अलावा, जब मैं एप्लिकेशन लॉन्च करता था तब एप्लिकेशन ऑफ़लाइन होने पर इन परिवर्तनों का पता लगाने का एक तरीका ढूंढ रहा था।

इस पृष्ठ में http://support.microsoft.com/kb/815314 घटनाओं के लॉग को स्कैन करने का एक स्पष्टीकरण है, लेकिन मुझे ऐसा कुछ नहीं मिला जो समय परिवर्तन घटना के रूप में विशिष्ट रूप से एक घटना की पहचान करेगा।

उत्तर

2

रनटाइम के दौरान समय परिवर्तन घटना का जवाब देने के लिए आप SystemEventsClass का उपयोग कर सकते हैं।

ईवेंट लॉग के लिए आप विंडोज सुरक्षा लॉग में इवेंट आईडी 520 के बारे में कुछ जानकारी खोदने का प्रयास कर सकते हैं, this पोस्ट के बारे में कुछ जानकारी है।

+0

धन्यवाद! लेकिन SystemEventsClass - TimeChanged केवल तब होता है जब "उपयोगकर्ता सिस्टम घड़ी पर समय बदलता है"। डेलाइट बचत समय के कारण स्वचालित समय में परिवर्तन का पता लगाने का कोई तरीका है? EventLogEntry क्लास में EventID दुर्भाग्यवश अप्रचलित है (http://msdn.microsoft.com/en-us/library/system.diagnostics.eventlogentry.eventid.aspx) – Oren

0

मुझे लगता है कि पहली बार आपका ऐप शुरू होने पर वर्तमान दिनांक/समय/टाइमज़ोन/डीएसटी सेटिंग्स को सहेजने का बेहतर समाधान होगा। फिर उन्हें बाद के ऐप पुनरारंभ पर जांचें। रनटाइम को पकड़ने के लिए SystemEvents क्लास के संयोजन के साथ यह इवेंट लॉग प्रविष्टियों को पार्स करने की कोशिश करने से असीम रूप से बेहतर होगा - जिसे शुद्ध/साफ़ किया जा सकता है।

+0

धन्यवाद स्कॉट मुझे यकीन नहीं है कि कोई कैसे पता लगा सकता है मैन्युअल समय परिवर्तन या यदि आपके द्वारा सुझाए गए अनुसार अनुसार एप्लिकेशन ऑफ़लाइन था, तो सिस्टम ने डेलाइट सेविंग के कारण समय को स्वचालित रूप से बदल दिया था। – Oren