1.需要调用动态库coredll.dll
2.头文件需添加
3.定义结构体时,必须包含8个参数,如少一个则会出现错误 因为在调用SetLocalTime时是通过指针的形式在调用,如果结构体中少了参数,那么SetLocalTime寻找地址时会出错.
4.下面为实现用c#修改wince系统时间代码:
5.在使用时通过调用SetSysTime(DateTime time)
using System.Runtime.InteropServicesusing System.IO
using Microsoft.Win32
[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 wMilliseconds
}
[DllImport("coredll.dll")]
private static extern bool SetLocalTime(ref SYSTEMTIME lpSystemTime)
[DllImport("coredll.dll")]
private static extern bool GetLocalTime(ref SYSTEMTIME lpSystemTime)
public void SetSysTime(DateTime date)
{
SYSTEMTIME lpTime = new SYSTEMTIME()
lpTime.wYear = Convert.ToUInt16(date.Year)
lpTime.wMonth = Convert.ToUInt16(date.Month)
lpTime.wDay = Convert.ToUInt16(date.Day)
lpTime.wHour = Convert.ToUInt16(date.Hour)
lpTime.wMinute = Convert.ToUInt16(date.Minute)
lpTime.wSecond = Convert.ToUInt16(date.Second)
SetLocalTime(ref lpTime)
}
重启按del键进入BIOS,选择第一行Standard CMOS Features使用箭头键以及+、-键分别修改Date,Time两行;
(具体的可看主板说明书进行 *** 作)
修改后按F10保存并退出BIOS,重启进入系统看是否正常显示时间。
系统时间不准
1、可能是CMOS电池没电了,请更换电池。
2、如果电池是新换的或更换没有多少时间,可能是CMOS电池接触不良引起的,如果是,在接触点塞进一小片铜片。
3、BIOS的时间没有保存或保存了,但没有生效。如果是这样,CMOS电路有问题,包括主板相关电路和保存BIOS程序的CMOS有质量问题。如果是主板电路有问题建议返修。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)