设置机器时间C#
在C#中设置机器时间的最佳方法是什么?您可能需要使用Win32 API来实现这一点,因为我非常确定框架中没有任何内容:设置机器时间C#,c#,time,set,C#,Time,Set,在C#中设置机器时间的最佳方法是什么?您可能需要使用Win32 API来实现这一点,因为我非常确定框架中没有任何内容: [StructLayout(LayoutKind.Sequential)] public struct SYSTEMTIME { public short wYear; public short wMonth; public short wDayOfWeek; public short wDay; public short wHour; public
[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 );
在上有一个更完整的示例,代码有点密集,但是一个简单的摘录非常容易阅读和理解:
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 API及其结构。Microsoft.VisualBasic.DateAndTime.TimeOfDay=dateTime 将Microsoft.VisualBasic的引用添加到项目中
如果有任何问题,请告诉我dup@肯尼:我不这么认为。。。这是关于远程机器的。这个评论不是完全重复的,因为这个问题是问如何在远程机器上执行此操作。@kenny:这不是与您链接的问题重复的问题。两个问题之间的区别在于,此问题询问如何设置本地机器时间,而您链接的问题是如何设置远程机器时间。但是,答案是一样的:)好的,不是dup,但答案是。就像提示一样,您需要管理员权限来设置系统时间。标准用户无法更改时间。您定义了SetSystemTime以返回布尔值,但检查结果是否==0。