C#更改系统时间
2009-12-18 23:42
393 查看
第一种方法:就是调用系统API函数更改系统时间
[StructLayout(LayoutKind.Sequential)]
public struct SystemTime
{
public ushort wYear;
public ushort wMonth;
public ushort wDayOfWeek;
public ushort wDay;
public ushort wHour;
public ushort wMinute;
public ushort wSecond;
public ushort wMiliseconds;
}
public class SetSystemDateTime
{
[DllImport("Kernel32.dll")]
public static extern bool SetLocalTime(ref SystemTime sysTime);
public static bool SetLocalTimeByStr(string timestr)
{
bool flag = false;
SystemTime sysTime = new SystemTime();
DateTime dt = Convert.ToDateTime(timestr);
sysTime.wYear = Convert.ToUInt16(dt.Year);
sysTime.wMonth = Convert.ToUInt16(dt.Month);
sysTime.wDay = Convert.ToUInt16(dt.Day);
sysTime.wHour = Convert.ToUInt16(dt.Hour);
sysTime.wMinute = Convert.ToUInt16(dt.Minute);
sysTime.wSecond = Convert.ToUInt16(dt.Second);
try
{
flag = SetSystemDateTime.SetLocalTime(ref sysTime);
}
catch (Exception e)
{
Console.WriteLine("SetSystemDateTime函数执行异常" + e.Message);
}
return flag;
}
}
第二种方法:就是利用Process类调用DOC命令更改系统时间
//实例一个Process类,启动一个独立进程
Process p = new Process();
//Process类有一个StartInfo属性
//设定程序名
p.StartInfo.FileName = "cmd.exe";
//设定程式执行参数 “/C”表示执行完命令后马上退出
p.StartInfo.Arguments = "/c date 2020-2-20";
//关闭Shell的使用
p.StartInfo.UseShellExecute = false;
//重定向标准输入
p.StartInfo.RedirectStandardInput = true;
p.StartInfo.RedirectStandardOutput = true;
//重定向错误输出
p.StartInfo.RedirectStandardError = true;
//设置不显示doc窗口
p.StartInfo.CreateNoWindow = true;
//启动
p.Start();
//从输出流取得命令执行结果
return p.StandardOutput.ReadToEnd();
更多的关于Process类的操作,可以参考
http://msdn.microsoft.com/zh-cn/library/system.diagnostics.process_members(VS.80).aspx
[StructLayout(LayoutKind.Sequential)]
public struct SystemTime
{
public ushort wYear;
public ushort wMonth;
public ushort wDayOfWeek;
public ushort wDay;
public ushort wHour;
public ushort wMinute;
public ushort wSecond;
public ushort wMiliseconds;
}
public class SetSystemDateTime
{
[DllImport("Kernel32.dll")]
public static extern bool SetLocalTime(ref SystemTime sysTime);
public static bool SetLocalTimeByStr(string timestr)
{
bool flag = false;
SystemTime sysTime = new SystemTime();
DateTime dt = Convert.ToDateTime(timestr);
sysTime.wYear = Convert.ToUInt16(dt.Year);
sysTime.wMonth = Convert.ToUInt16(dt.Month);
sysTime.wDay = Convert.ToUInt16(dt.Day);
sysTime.wHour = Convert.ToUInt16(dt.Hour);
sysTime.wMinute = Convert.ToUInt16(dt.Minute);
sysTime.wSecond = Convert.ToUInt16(dt.Second);
try
{
flag = SetSystemDateTime.SetLocalTime(ref sysTime);
}
catch (Exception e)
{
Console.WriteLine("SetSystemDateTime函数执行异常" + e.Message);
}
return flag;
}
}
第二种方法:就是利用Process类调用DOC命令更改系统时间
//实例一个Process类,启动一个独立进程
Process p = new Process();
//Process类有一个StartInfo属性
//设定程序名
p.StartInfo.FileName = "cmd.exe";
//设定程式执行参数 “/C”表示执行完命令后马上退出
p.StartInfo.Arguments = "/c date 2020-2-20";
//关闭Shell的使用
p.StartInfo.UseShellExecute = false;
//重定向标准输入
p.StartInfo.RedirectStandardInput = true;
p.StartInfo.RedirectStandardOutput = true;
//重定向错误输出
p.StartInfo.RedirectStandardError = true;
//设置不显示doc窗口
p.StartInfo.CreateNoWindow = true;
//启动
p.Start();
//从输出流取得命令执行结果
return p.StandardOutput.ReadToEnd();
更多的关于Process类的操作,可以参考
http://msdn.microsoft.com/zh-cn/library/system.diagnostics.process_members(VS.80).aspx
相关文章推荐
- C# 更改系统时间
- C#更改系统时间
- C#更改系统时间
- 更改Android系统时间
- C#中获取系统时间
- 黄聪:C#超级延时方法,延迟系统时间但系统又能同时能执行其它任务
- 如何更改win7双系统开机系统选择时间 加快开机呢?
- .net杂记 (调用EXE 获取路径 target VB DIV C# Split 页面之间传递值 更改session时间 EXCEL操作 控制电子邮件Mail input记录值的窍门)
- WinCE下,C#更改wince操作系统的时间
- c# 系统服务更改服务名称及部署注意事项
- C#设置系统日期和时间
- 更改Linux系统时间
- c#调用win32 API函数修改系统时间
- olap系统统计信息任务更改默认启动时间及其执行时间
- WinXP 系统,在任务栏上右侧,时间显示是12小时制,如何更改成24小时制?
- C#获取系统时间
- C#中动态显示当前系统时间
- CentOS 6更改系统时间后无法启动的解决办法
- C#提取系统时间
- Java中系统时间与C#DateTime对象之间转换方法