手机
当前位置:查字典教程网 >编程开发 >C#教程 >C#利用win32 Api 修改本地系统时间、获取硬盘序列号
C#利用win32 Api 修改本地系统时间、获取硬盘序列号
摘要:C#利用win32Api修改本地系统时间、获取硬盘序列号,可以用于软件注册机制的编写!复制代码代码如下:usingSystem;usingS...

C#利用win32 Api 修改本地系统时间、获取硬盘序列号,可以用于软件注册机制的编写!

复制代码 代码如下:

using System;

using System.Collections.Generic;

using System.Text;

using System.Runtime.InteropServices;

namespace Fengyun

{

public class Win32

{

#region 修改本地系统时间

[DllImport("Kernel32.dll")]

private extern static void GetSystemTime(ref SYSTEMTIME lpSystemTime);

[DllImport("Kernel32.dll")]

private extern static uint SetLocalTime(ref SYSTEMTIME lpSystemTime);

[StructLayout(LayoutKind.Sequential)]

private 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 wMilliseconds;

}

/// <summary>

/// 将本地时间与sqlserver服务器时间同步

/// </summary>

/// <param name="SqlServerTime">时间</param>

public static void SetTime(DateTime SqlServerTime)

{

SYSTEMTIME st = new SYSTEMTIME();

st.wYear = Convert.ToUInt16(SqlServerTime.Year);

st.wMonth = Convert.ToUInt16(SqlServerTime.Month);

st.wDay = Convert.ToUInt16(SqlServerTime.Day);

st.wHour = Convert.ToUInt16(SqlServerTime.Hour);

st.wMilliseconds = Convert.ToUInt16(SqlServerTime.Millisecond);

st.wMinute = Convert.ToUInt16(SqlServerTime.Minute);

st.wSecond = Convert.ToUInt16(SqlServerTime.Second);

SetLocalTime(ref st);

}

#endregion

#region 获取硬盘序列号

[DllImport("kernel32.dll")]

private static extern int GetVolumeInformation(

string lpRootPathName,

string lpVolumeNameBuffer,

int nVolumeNameSize,

ref int lpVolumeSerialNumber,

int lpMaximumComponentLength,

int lpFileSystemFlags,

string lpFileSystemNameBuffer,

int nFileSystemNameSize

);

/// <summary>

/// 获取硬盘序列号

/// </summary>

/// <param name="drvID">硬盘盘符[c|d|e|....]</param>

/// <returns></returns>

public static string GetDiskVolume(string drvID)

{

const int MAX_FILENAME_LEN = 256;

int retVal = 0;

int lpMaximumComponentLength = 0;

int lpFileSystemFlags = 0;

string lpVolumeNameBuffer = null;

string lpFileSystemNameBuffer = null;

int i = GetVolumeInformation(

drvID + @":",

lpVolumeNameBuffer,

MAX_FILENAME_LEN,

ref retVal,

lpMaximumComponentLength,

lpFileSystemFlags,

lpFileSystemNameBuffer,

MAX_FILENAME_LEN

);

return retVal.ToString("x");

}

#endregion

}

}

以上就是本文所分享的代码的全部内容了,希望对大家学习C#能有所帮助。

【C#利用win32 Api 修改本地系统时间、获取硬盘序列号】相关文章:

C#中使用反射获取结构体实例及思路

C#中日期时间的简单操作

C#中判断本地系统的网络连接状态的方法

C#修改MAC地址类的实例

C#程序打成 一键安装包-InstallShield教程

C# 调用Delphi dll 实例代码

C# 常用日期时间函数(老用不熟)

C#日期时间格式化小结

c#构造初始化的顺序浅析

C# DES加密算法中向量的作用详细解析

精品推荐
分类导航