2010-05-05 9 views
9

क्या कोई विंडोज एपीआई है जो "दिनांक और समय गुण"/"इंटरनेट टाइम" टैब में "अभी अपडेट करें" बटन पर क्लिक करने के बराबर प्राप्त करेगी (घड़ी को डबल क्लिक करके खोला गया टास्कबार)?विंडोज एपीआई समय सिंक्रनाइज़ेशन ट्रिगर करने के लिए

क्या निगरानी करने का कोई तरीका है जब समय सिंक्रनाइज़ेशन विंडोज़ द्वारा ट्रिगर किया जाता है और जब यह सफल होता है या विफल रहता है?

उत्तर

7

समय सेवा द्वारा खुलासा कोई एपीआई नहीं है, लेकिन एक समय सिंक्रनाइज़ेशन ट्रिगर करने के लिए आप w32tm कमांड लाइन उपकरण का उपयोग कर सकते हैं।

सी/C++ में आप कुछ इस तरह कर सकते हैं:

include <process.h> 

... 

system("w32tm /resync /nowait"); 

आगे के विकल्पों के w32tm documentation पर एक नजर डालें।

+0

बिल्कुल वही नहीं जो मुझे चाहिए, लेकिन कुछ भी नहीं। धन्यवाद! –

+0

धन्यवाद दस लाख! –

1

यह काम करने के लिए लगता है:

using System; 
using System.Runtime.InteropServices; 

namespace ClockResync 
{ 
    class Program 
    { 
     [DllImport("w32time.dll")] 
     public static extern uint W32TimeSyncNow([MarshalAs(UnmanagedType.LPWStr)]String computername, bool wait, uint flag); 
     static void Main(string[] args) 
     { 
      Console.WriteLine(W32TimeSyncNow("computername", true, 8).ToString()); 
      Console.ReadLine(); 
     } 
    } 
} 

यह undocumented है तो मैं बिल्कुल यकीन है कि क्या संभव झंडे हैं नहीं कर रहा हूँ, लेकिन 8 काम ठीक करने के लिए लगता है - अपने सिस्टम घड़ी के साथ परीक्षण किया गया। यदि आप Windows 64-बिट चला रहे हैं, तो 64-बिट के लिए संकलित करें या आपको उल्लंघन उल्लंघन अपवाद मिलेंगे।

W32TimeQueryStatus अंतिम सफल सिंक समय प्राप्त करने में सक्षम होना चाहिए। जब मैं अधिक समय लेता हूं तो मैं उस पर काम करूंगा।

संबंधित मुद्दे