【发布时间】:2016-10-15 17:54:55
【问题描述】:
我正在尝试使用以下 C# 代码更改系统日期和时间。但结果是 systemdate 中没有发生任何变化(也没有引发错误)。我也尝试取消注释代码的注释部分。但是没有效果。 :( 之后我尝试从命令提示符更改时间。(不使用 c#)然后它显示“客户端未持有所需的特权”。我知道这条消息可能与代码没有任何联系,但我添加它是为了让我的情况更清楚。
[StructLayout(LayoutKind.Sequential)]
public struct Systemtime
{
public ushort Year;
public ushort Month;
public ushort DayOfWeek;
public ushort Day;
public ushort Hour;
public ushort Minute;
public ushort Second;
public ushort Millisecond;
}
/*
[DllImport("kernel32.dll", EntryPoint = "GetSystemTime", SetLastError = true)]
[return: MarshalAsAttribute(UnmanagedType.Bool)]
public static extern bool Win32GetSystemTime([InAttribute]ref Systemtime sysTime);
*/
[DllImport("kernel32.dll", EntryPoint = "SetSystemTime", SetLastError = true)]
[return: MarshalAsAttribute(UnmanagedType.Bool)]
public static extern bool Win32SetSystemTime([InAttribute]ref Systemtime sysTime);
private void DateTimeSelectedButton_Click(object sender, EventArgs e)
{
//var neededtime = MonthChangePhenomenonDateTimePicker.Value - TimeSpan.FromHours(5)-TimeSpan.FromMinutes(30);
// Set system date and time
Systemtime updatedTime = new Systemtime();
updatedTime.Year = (ushort)MonthChangePhenomenonDateTimePicker.Value.Year;
updatedTime.Month = (ushort)MonthChangePhenomenonDateTimePicker.Value.Month;
updatedTime.Day = (ushort)MonthChangePhenomenonDateTimePicker.Value.Day;
// UTC time; it will be modified according to the regional settings of the target computer so the actual hour might differ
updatedTime.Hour = (ushort)MonthChangePhenomenonDateTimePicker.Value.Hour;
updatedTime.Minute = (ushort)MonthChangePhenomenonDateTimePicker.Value.Minute;
updatedTime.Second = (ushort)MonthChangePhenomenonDateTimePicker.Value.Second;
// Call the unmanaged function that sets the new date and time instantly
Win32SetSystemTime(ref updatedTime);
MessageBox.Show(@"You Have Current System Time: " + updatedTime);
}
请帮助我知道出了什么问题。提前致谢。 :)
【问题讨论】:
-
把Win32SetSystemTime改成SetSystemTime再试试。
-
刚试过@vivek nuna 但没有效果:(
-
以管理员身份运行您的代码,然后尝试
-
怎么做!? @vivek 努纳
-
写点击visual studio,你会看到以管理员身份运行
标签: c# time systemtime