我正在使用 C# .net 在 Windows Embedded Standard 7 操作系统上设置日期和时间。
我尝试使用以下链接中的代码更改系统日期。
http://www.pinvoke.net/default.aspx/kernel32.setsystemtime
但我也看到一个人应该获得改变相同的特权。但我收到一个错误。这是代码
Privileges.EnablePrivilege(SecurityEntity.SE_SYSTEMTIME_NAME);
if (SetSystemTime(ref st) == 0)
{
return 0;
}
return 1;
为了获得特权,我使用了以下链接中的代码。
http://www.pinvoke.net/default.aspx/advapi32/AdjustTokenPrivileges.html C# 示例代码 2(带有完整的错误处理):
我有一个问题:是否可以使用 PInvoke 更改日期和时间。如果可能的话,我应该在操作系统上进行哪些更改/设置。
还有什么其他方法可以更改日期和时间。
谢谢你
编辑:
[DllImport("kernel32.dll")]
extern static uint SetSystemTime(ref SYSTEMTIME lpSystemTime);
public int SetSystemDateTime(DateTime NewSystemDateTime)
{
SYSTEMTIME st = new SYSTEMTIME();
st.wYear = (ushort)NewSystemDateTime.Year;
st.wMonth = (ushort)NewSystemDateTime.Month;
st.wDay = (ushort)NewSystemDateTime.Day;
st.wHour = (ushort)NewSystemDateTime.Hour;
st.wMinute = (ushort)NewSystemDateTime.Minute;
st.wMilliseconds = (ushort)NewSystemDateTime.Millisecond;
Privileges.EnablePrivilege(SecurityEntity.SE_SYSTEMTIME_NAME);
if (SetSystemTime(ref st) == 0)
{
return 0;
}
return 1;
}