关于该系统时间的有关问题!很奇怪
求助关于该系统时间的问题!!很奇怪
下边是我的代码,我的问题是无论我SystemTime赋什么值,每次F5运行总是会把时间修改成我第一次编译时候填的时间
比如说,我第一次F5时候填的20时25分35秒。然后无论我怎么修改时间 ,每次F5运行都会把时间改成20点25分35秒,直接去BIN目录里启动也一样
------解决方案--------------------
应该是系统没有编译,结果你每次运行的都是第一次生成的exe文件,结果肯定是一样的。
我猜测:你程序修改了计算机系统时间,那个exe生成的时间应该是比较晚,每次编译的时候,编译程序检查exe文件,认为exe生成时间最晚,是最新的,就没有编译,直接执行了,你可以查看下你生成的exe文件的生成日期。跟系统时间比较下。
下边是我的代码,我的问题是无论我SystemTime赋什么值,每次F5运行总是会把时间修改成我第一次编译时候填的时间
比如说,我第一次F5时候填的20时25分35秒。然后无论我怎么修改时间 ,每次F5运行都会把时间改成20点25分35秒,直接去BIN目录里启动也一样
[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 Win32
{
[DllImport("kernel32.dll", CharSet = CharSet.Ansi)]
public static extern bool SetSystemTime(ref SystemTime sysTime);
[DllImport("Kernel32.dll")]
public static extern void GetSystemTime(SystemTime sysTime);
}
private void button1_Click(object sender, EventArgs e)
{
int nBeijingHour = DateTime.Now.Hour - 8;
SystemTime st = new SystemTime();
st.wYear = Convert.ToUInt16(DateTime.Now.Year);
st.wMonth = Convert.ToUInt16(DateTime.Now.Month);
st.wDay = 8;
st.wHour = Convert.ToUInt16(6);
st.wMinute = 15;
st.wSecond = 11;
Win32.SetSystemTime(ref st);
}
}
------解决方案--------------------
应该是系统没有编译,结果你每次运行的都是第一次生成的exe文件,结果肯定是一样的。
我猜测:你程序修改了计算机系统时间,那个exe生成的时间应该是比较晚,每次编译的时候,编译程序检查exe文件,认为exe生成时间最晚,是最新的,就没有编译,直接执行了,你可以查看下你生成的exe文件的生成日期。跟系统时间比较下。