程序退出时更正用户修改的系统时间
来源:互联网 发布:医疗器械g进销存软件 编辑:程序博客网 时间:2024/06/05 15:14
程序运行时运行用户更改系统时间,
但再程序退出时调用函数把系统时间改回到 在原来的系统时间基础上 经过的时间.
但再程序退出时调用函数把系统时间改回到 在原来的系统时间基础上 经过的时间.
[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;
}
[DllImport("Kernel32.dll")]
public static extern bool SetSystemTime(ref SystemTime sysTime);
[DllImport("Kernel32.dll")]
public static extern void GetSystemTime(ref SystemTime sysTime);
/// <summary>
/// 设置系统时间。
/// </summary>
public void ReSetSystemTime()
{
SystemTime sysTime = new SystemTime();
// public DateTime ProgramStartTime;
// frmMain.ProgramStartTime 在 frmMain_Load 符值:ProgramStartTime = DateTime.Now;
// public static int sysTickCount;
// frmMain.sysTickCount 在 frmMain_Load 符值:ProgramStartTime = System.EnvironmentTickCount; DateTime DateTimeNow = frmMain.ProgramStartTime.AddTicks(Convert.ToUInt16(System.Environment.TickCount - frmMain.sysTickCount));
sysTime.wYear = Convert.ToUInt16(DateTimeNow.Year);
sysTime.wMonth = Convert.ToUInt16(DateTimeNow.Month);
//处置北京时间
int nBeijingHour = DateTimeNow.Hour - 8;
if (nBeijingHour <= 0)
{
nBeijingHour += 24;
sysTime.wDay = Convert.ToUInt16(DateTimeNow.Day - 1);
sysTime.wDayOfWeek = Convert.ToUInt16(DateTimeNow.DayOfWeek - 1);
}
else
{
sysTime.wDay = Convert.ToUInt16(DateTime.Now.Day);
sysTime.wDayOfWeek = Convert.ToUInt16(DateTime.Now.DayOfWeek);
}
sysTime.wHour = Convert.ToUInt16(nBeijingHour);
sysTime.wMinute = Convert.ToUInt16(DateTimeNow.Minute);
sysTime.wSecond = Convert.ToUInt16(DateTimeNow.Second);
sysTime.wMiliseconds = Convert.ToUInt16(DateTimeNow.Millisecond);
SetSystemTime(ref sysTime);
}
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;
}
[DllImport("Kernel32.dll")]
public static extern bool SetSystemTime(ref SystemTime sysTime);
[DllImport("Kernel32.dll")]
public static extern void GetSystemTime(ref SystemTime sysTime);
/// <summary>
/// 设置系统时间。
/// </summary>
public void ReSetSystemTime()
{
SystemTime sysTime = new SystemTime();
// public DateTime ProgramStartTime;
// frmMain.ProgramStartTime 在 frmMain_Load 符值:ProgramStartTime = DateTime.Now;
// public static int sysTickCount;
// frmMain.sysTickCount 在 frmMain_Load 符值:ProgramStartTime = System.EnvironmentTickCount; DateTime DateTimeNow = frmMain.ProgramStartTime.AddTicks(Convert.ToUInt16(System.Environment.TickCount - frmMain.sysTickCount));
sysTime.wYear = Convert.ToUInt16(DateTimeNow.Year);
sysTime.wMonth = Convert.ToUInt16(DateTimeNow.Month);
//处置北京时间
int nBeijingHour = DateTimeNow.Hour - 8;
if (nBeijingHour <= 0)
{
nBeijingHour += 24;
sysTime.wDay = Convert.ToUInt16(DateTimeNow.Day - 1);
sysTime.wDayOfWeek = Convert.ToUInt16(DateTimeNow.DayOfWeek - 1);
}
else
{
sysTime.wDay = Convert.ToUInt16(DateTime.Now.Day);
sysTime.wDayOfWeek = Convert.ToUInt16(DateTime.Now.DayOfWeek);
}
sysTime.wHour = Convert.ToUInt16(nBeijingHour);
sysTime.wMinute = Convert.ToUInt16(DateTimeNow.Minute);
sysTime.wSecond = Convert.ToUInt16(DateTimeNow.Second);
sysTime.wMiliseconds = Convert.ToUInt16(DateTimeNow.Millisecond);
SetSystemTime(ref sysTime);
}
- 程序退出时更正用户修改的系统时间
- 获取程序执行的“挂钟时间”,“用户时间”,“系统时间”
- C#--记录用户程序退出时间日志
- 修改sap的用户时间/时区与系统时间/时区
- php源码--更正系统显示时间
- java 程序修改系统时间
- thttpd 修改时间退出的bug
- “智能”的让IE浏览器时,用户也退出系统
- 修改系统的时间
- 如何保证程序运行时系统时间不被修改!
- 获取时间和退出系统的javascript
- android 命令修改时间或程序修改系统时间
- android 命令修改时间或程序修改系统时间
- 用Java程序修改Windows系统时间
- 修改系统用户的帐号密码
- 进程的用户时间和系统时间
- 修改linux系统的时间
- 修改linux系统的时间
- 在父窗口操作iframe中的对象
- 上网
- 业务逻辑层的模式
- MyEclipse 5.0 + WebLogic 9.2 配置详解
- Analyzing Kernel Modules Data in OProfile in Fedora Core 3/4 and RHEL4
- 程序退出时更正用户修改的系统时间
- C/S结构和B/S的区别和联系
- 目前用到的资源
- 时间日期
- 《解剖PetShop》系列之六:PetShop之表示层设计
- ASP.NET2.0轻松搞定统计图表
- 《解剖PetShop》系列之五——业务逻辑层设计
- Foxbase按條件刪除記錄
- Windows Media Server流媒体服务器架建