Cela semble fonctionner:
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();
}
}
}
Il est en situation irrégulière, donc je ne sais pas exactement ce que les drapeaux sont possibles, mais 8 semble faire le travail très bien - testé avec mon horloge système. Si vous exécutez Windows 64 bits, compilez pour 64 bits ou vous obtiendrez des exceptions de violation d'accès.
W32TimeQueryStatus
devrait être en mesure d'obtenir la dernière heure de synchronisation réussie. Je vais y travailler quand j'ai plus de temps.
Pas exactement ce dont j'avais besoin, mais mieux que rien. Merci! –
Merci un million! –