110,538
社区成员
发帖
与我相关
我的任务
分享
public class Win32
{
[StructLayout(LayoutKind.Sequential)]
public struct SystemTime
{
public ushort year;
public ushort month;
public ushort dayofweek;
public ushort day;
public ushort hour;
public ushort minute;
public ushort second;
public ushort milliseconds;
}
[ DllImport( "Kernel32.dll" )]
private static extern Boolean SetSystemTime(ref SystemTime st);
[DllImport("Kernel32.dll ")]
public static extern void GetSystemTime(ref SystemTime sysTime);
public static bool SetSysTime(ref DateTime newdatetime)
{
SystemTime st = new SystemTime();
st.year = Convert.ToUInt16(newdatetime.Year);
st.month = Convert.ToUInt16(newdatetime.Month);
st.day = Convert.ToUInt16(newdatetime.Day);
st.dayofweek = Convert.ToUInt16(newdatetime.DayOfWeek);
st.hour = Convert.ToUInt16(newdatetime.Hour - TimeZone.CurrentTimeZone.GetUtcOffset(new DateTime(2001, 09, 01)).Hours);
st.minute = Convert.ToUInt16(newdatetime.Minute);
st.second = Convert.ToUInt16(newdatetime.Second);
st.milliseconds = Convert.ToUInt16(newdatetime.Millisecond);
return SetSystemTime(ref st);
}
}
DateTime dt = DateTime.Parse("2010-9-9 16:00:00");
bool b= Win32.SetSysTime(ref dt);
using System;
using System.Runtime.InteropServices;
[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 ")]
public static extern bool SetSystemTime( ref SystemTime sysTime );
[DllImport( "Kernel32.dll ")]
public static extern void GetSystemTime(ref SystemTime sysTime);
}
public class TestPInvoke
{
public static void Main()
{
SystemTime sysTime = new SystemTime();
sysTime.wYear = 2003;
sysTime.wMonth=1;
sysTime.wDay=1;
sysTime.wHour=1;
sysTime.wMinute=1;
sysTime.wSecond=1;
sysTime.wMiliseconds=1;
Win32.SetSystemTime(ref sysTime);
}
}
using System;
using System.Runtime.InteropServices;
[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 ")]
public static extern bool SetSystemTime( ref SystemTime sysTime );
[DllImport( "Kernel32.dll ")]
public static extern void GetSystemTime(ref SystemTime sysTime);
}
public class TestPInvoke
{
public static void Main()
{
SystemTime sysTime = new SystemTime();
sysTime.wYear = 2003;
sysTime.wMonth=1;
sysTime.wDay=1; [code=C#]
/// <summary>
2 ///系统时间类
3 /// </summary>
4 [ StructLayout( LayoutKind.Sequential )]
5 public class SystemTime
6 {
7 public ushort year;
8 public ushort month;
9 public ushort dayofweek;
10 public ushort day;
11 public ushort hour;
12 public ushort minute;
13 public ushort second;
14 public ushort milliseconds;
15 }
16
17 /// <summary>
18 /// Windows API方法
19 /// </summary>
20 public class WinAPI
21 {
22 [ DllImport( "Kernel32.dll" )]
23 private static extern Boolean SetSystemTime([In,Out] SystemTime st);
24
25 /// <summary>
26 /// 设置系统时间
27 /// </summary>
28 /// <param name="newdatetime">新时间</param>
29 /// <returns></returns>
30 public static bool SetSysTime(DateTime newdatetime)
31 {
32 SystemTime st = new SystemTime();
33 st.year = Convert.ToUInt16(newdatetime.Year);
34 st.month = Convert.ToUInt16(newdatetime.Month);
35 st.day = Convert.ToUInt16(newdatetime.Day);
36 st.dayofweek = Convert.ToUInt16(newdatetime.DayOfWeek);
37 st.hour = Convert.ToUInt16(newdatetime.Hour - TimeZone.CurrentTimeZone.GetUtcOffset(new DateTime(2001,09,01)).Hours);
38 st.minute = Convert.ToUInt16(newdatetime.Minute);
39 st.second = Convert.ToUInt16(newdatetime.Second);
40 st.milliseconds = Convert.ToUInt16(newdatetime.Millisecond);
41 return SetSystemTime(st);
42 }
43 }