如何实现修改电脑时间啊

hongliangy 2003-08-20 03:09:38
如何实现修改电脑时间啊
我用下面程序,并报错,请高手指点
public class SYSTEMTIME
{
public int wYear;
public int wMonth;
public int wDayOfWeek;
public int wDay;
public int wHour;
public int wMinute;
public int wSecond;
public int wMilliseconds;
}
public class SystemTineDll
{
[DllImport("KERNEL32")]
public static extern void SetSystemTime( [In,Out]SYSTEMTIME lpSystemTime );
}
修改程序
SqlCommand command2=new SqlCommand("SELECT DISTINCT GETDATE() AS T FROM tblFunction",cn);
System.DateTime result=(DateTime)command2.ExecuteScalar();
SYSTEMTIME LocalTime=new SYSTEMTIME();
LocalTime.wYear=result.Year;
LocalTime.wMonth=result.Month;
LocalTime.wDay=result.Day;
LocalTime.wHour=result.Hour;
LocalTime.wMinute=result.Minute;

SystemTineDll.SetSystemTime(LocalTime);

程序在执行SystemTineDll.SetSystemTime(LocalTime);时报错,错误信息为
无法封送parameter #1:该类型的类型没有布局信息

...全文
187 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
hongliangy 2003-08-21
  • 打赏
  • 举报
回复
行了,可以改了,定义成ushort就行了,谢谢
hongliangy 2003-08-21
  • 打赏
  • 举报
回复
对的是因[StructLayout(LayoutKind.Sequential)]这个问题,但我试了后时间好象没有被改成功,程序是执行了,没有任何问题,但就是SystemTineDll.SetSystemTime(LocalTime);没有真的修改,只是被执行
xixigongzhu 2003-08-21
  • 打赏
  • 举报
回复
VB.net有个DateString的属性,可写,也就是可以更改系统时间,微软的实现方式跟楼主类似。他的SystemTime是这样定义的:
[StructLayout(LayoutKind.Sequential)]
sealed class SystemTime {
public short wDay;
public short wDayOfWeek;
public short wHour;
public short wMilliseconds;
public short wMinute;
public short wMonth;
public short wSecond;
public short wYear;
}
经过测试,搂主出错的原因就在于[StructLayout(LayoutKind.Sequential)]。
panyee 2003-08-21
  • 打赏
  • 举报
回复
http://expert.csdn.net/Expert/topic/2021/2021240.xml?temp=.6311457
jennyq_zq 2003-08-21
  • 打赏
  • 举报
回复
1) change class to struct
2) use Int16 instead of int

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧