Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/270.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
设置机器时间C#_C#_Time_Set - Fatal编程技术网

设置机器时间C#

设置机器时间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

在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 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。