一般来说,系统时间的修改可以通过win32 API函数库中的SetLocalTime函数进行设置。对于C#语言来说,虽然win32 API大部分函数都已经封装在了.NET Framework类库中,但C#中时间日期的封装类System.DateTime却没有操作修改系统时间的成员,因此我们仍然需要调用win23 API的SetLocalTime函数。
那么问题来了,面向对象的C#语言该如何调用C语言的API函数?
我们知道API函数是存在于.dll文件中,对于.NET平台上的C#语言,只需要通过DllImport特性即可调用API函数。主要过程如下:
(1) 要使用DllImport特性,必须包含命名空间:System.Runtime.InteropServices
(2) 创建DllImport特性类的实例
— 特性类实例的创建形式为:[特性类(参数列表)]
— 上述参数是指需要调用的API函数所在的dll文件(可以在MSDN中查询API函数位于哪个dll文件)
(3) 调用win32 API函数
— 函数返回值及参数类型与win32 API对应的函数一致(这步需要确定win32数据类型所对应的.NET平台数据类型)
— 函数还需要额外增加public static extern进行声明
下面开始进入正题吧,调用win32 API中的SetLocalTime函数修改系统时间:
代码部分参考自博客:http://www.cnblogs.co