2009-09-24 6 views

cevap

15

kolay yollarından biri, bir süreç başlatmaya ve (http://blogs.msdn.com/sanket/archive/2006/11/02/synchronizing-machine-time-with-domain-controller.aspx kopyalanan) NET TIME komutu

using System; 
using System.Diagnostics; 
class Program 
{ 
    static void Main(string[] args) 
    { 
     Process netTime = new Process(); 

     netTime.StartInfo.FileName = "NET.exe"; 
     netTime.StartInfo.Arguments = "TIME /domain:mydomainname /SET /Y"; 
     netTime.Start(); 
    } 
} 
+0

+1. Bu tam olarak yazdığım şey, beni sadece bana dövdün. Güzel. –

+0

Açık pencerede komutu görmeli miyim? Benim için işe yaramıyor :( –

+0

Lütfen mydomainname'ye yazabileceğim bir şey önerebilir misiniz? – Tomi

0

Bu komut satırı aracı w32tm kullanarak yapabilirsiniz:

w32tm /resync 

Bu ne C# Ne .NET, ama umarım ihtiyaçlarınızı karşılar.

0

çalıştırmak olacaktır kolay yolu net çalıştırmak için System.Diagnostics.Process kullanmak olacaktır DC'ye geri senkronize etmek için uygun parametrelerle zamanını verin.

Sen ciddi "şimdiki zaman" kavramını yapma düşünmelisiniz: diğer cevaplar bir ek olarak

net time /? 
+0

Çift yazı için Soory, Justin bana bunu yendi – ParmesanCodice

2

: Bir komut isteminden

çalıştırın bu bahsettiğim ne olduğunu görmek için Bir şekilde sisteminize enjekte edilebilir. Sistem saatinden doğrudan okuma, (küresel bir durum olduğu için), uygulamayı çalıştırırken bile çok sorunludur.

+1

Bu benim ilk seçenek oldu, aşağıdaki gibi bir şey yapmak için http://stackoverflow.com/questions/43711/whats-a-good-way-to -overwrite-datetime-now-sırasında-test- Ne yazık ki, böyle bir şey yapmak için bana erişim vermez bir platform çözümü ile çalışıyorum, ya bu, ya da regresyon testi yapmak değil, ve ben sevmiyorum alternatif. – helios456