Questo sembra funzionare:
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();
}
}
}
E 'documentato quindi non sono esattamente sicuro di quello che i possibili bandiere sono, ma 8 sembra fare il lavoro bene - testato con il mio orologio di sistema. Se stai eseguendo Windows a 64 bit, esegui la compilazione per 64 bit o riceverai eccezioni di violazione di accesso.
W32TimeQueryStatus
dovrebbe essere in grado di ottenere l'ultimo tempo di sincronizzazione riuscito. Ci lavorerò quando avrò più tempo.
fonte
2016-07-13 00:39:44
Non esattamente quello di cui avevo bisogno, ma meglio di niente. Grazie! –
Grazie mille! –