sreedhar.jakkani Ответов: 2

Как изменить системную дату и время с помощью C#?


Как изменить системную дату и время с помощью C#?
Я пробовал следовать коду, но он не работает для me..so пожалуйста помогите мне


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 void SetSystemTime(ref SYSTEMTIME st);

public void SetSystemDateTime(DateTime ServerDateTime)
{
       ServerDateTime = ServerDateTime.AddHours(-5).AddMinutes(-30);
       SYSTEMTIME st = new SYSTEMTIME();
       st.wYear = (short)ServerDateTime.Year; // must be short
st.wMonth = (short)ServerDateTime.Month;
       st.wDay = (short)ServerDateTime.Day;
       st.wHour = (short)ServerDateTime.Hour;
       st.wMinute = (short)ServerDateTime.Minute;
       st.wSecond = (short)ServerDateTime.Second;
       st.wMilliseconds = (short)ServerDateTime.Millisecond;
       SetSystemTime(ref st);
}

Philippe Mori

Насколько я знаю, системное время не может быть изменено без запуска приложения от имени администратора.

2 Ответов

Рейтинг:
1

OriginalGriff

Начните с проверки возвращаемого значения: https://msdn.microsoft.com/en-us/library/windows/desktop/ms724942(v=против 85).aspx[^] - если есть проблема, она вернет 0.
Затем вы можете использовать GetLastError для получения информации об ошибке.

Пока у вас нет этой информации, вы просто догадываетесь, в чем может быть проблема.