2010-08-02 8 views
5

मशीन समय को सी # में सेट करने का सबसे अच्छा तरीका क्या है?सेट मशीन का समय सी #

+0

dup है? http://stackoverflow.com/questions/204936/set-time-programmatically-using-c – kenny

+0

@ केनी: मुझे ऐसा नहीं लगता ... यह दूरस्थ मशीनों के बारे में बात कर रहा है। –

+0

यह टिप्पणी एक सटीक डुप्लिकेट नहीं है, क्योंकि वह प्रश्न यह पूछ रहा है कि रिमोट मशीन पर इसे कैसे किया जाए। –

उत्तर

7

आप शायद के रूप में मैं काफी यकीन है कि ढांचे में शामिल किया हुआ कोई बात नहीं है हूँ, Win32 एपीआई का उपयोग करने यह करने के लिए की आवश्यकता होगी:

[StructLayout(LayoutKind.Sequential)] 
public struct SYSTEMTIME { 
public short wYear; 
public short wMonth; 
public short wDayOfWeek; 
public short wDay; 
public short wHour; 
public short wMinute; 
public short wSecond; 
public short wMilliseconds; 
} 
[DllImport("kernel32.dll", SetLastError=true)] 
public static extern bool SetSystemTime(ref SYSTEMTIME theDateTime); 

PInvoke.net बारे में एक समग्र उदाहरण नहीं है, कोड थोड़ा घने है है, लेकिन एक साधारण अंश कि काफी पढ़ने और समझने में सादे है यह है:

SYSTEMTIME st = new SYSTEMTIME(); 
GetSystemTime(ref st); 
// Adds one hour to the time that was retrieved from GetSystemTime 
st.wHour = (ushort)(st.wHour + 1 % 24); 
var result = SetSystemTime(ref st); 
if (result == false) 
{ 
    // Something went wrong 
} 
else 
{ 
    // The time will now be 1hr later than it was previously 
} 

प्रासंगिक विशिष्ट Win32 एपीआई SetSystemTime, GetSystemTime और SYSTEMTIME संरचना कर रहे हैं।

+2

बस एक सिर के रूप में, आपको सिस्टम समय निर्धारित करने के लिए व्यवस्थापक नियंत्रक की आवश्यकता होगी। एक मानक उपयोगकर्ता समय नहीं बदल सकता है। – Joshua

+1

@ जोशुआ, बहुत सच, +1 – Rob

+0

आपने सेट सिस्टम सिस्टम को एक बूल वापस करने के लिए परिभाषित किया है लेकिन जांच करें कि परिणाम == 0 है या नहीं। –

1

माइक्रोसॉफ्ट। विज़ुअल बेसिक .डेट एंडटाइम। टाइमऑफडे = डेटटाइम;

Microsoft.VisualBasic का कोई संदर्भ जोड़ें करने के लिए आप परियोजना कृपया मुझे पता किसी भी मुद्दे अगर

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