C#利用win32 Api 修改本地系统时间、获取硬盘序列号
C#利用win32Api修改本地系统时间、获取硬盘序列号,可以用于软件注册机制的编写!
usingSystem;
usingSystem.Collections.Generic;
usingSystem.Text;
usingSystem.Runtime.InteropServices;
namespaceFengyun
{
publicclassWin32
{
#region修改本地系统时间
[DllImport("Kernel32.dll")]
privateexternstaticvoidGetSystemTime(refSYSTEMTIMElpSystemTime);
[DllImport("Kernel32.dll")]
privateexternstaticuintSetLocalTime(refSYSTEMTIMElpSystemTime);
[StructLayout(LayoutKind.Sequential)]
privatestructSYSTEMTIME
{
publicushortwYear;
publicushortwMonth;
publicushortwDayOfWeek;
publicushortwDay;
publicushortwHour;
publicushortwMinute;
publicushortwSecond;
publicushortwMilliseconds;
}
///<summary>
///将本地时间与sqlserver服务器时间同步
///</summary>
///<paramname="SqlServerTime">时间</param>
publicstaticvoidSetTime(DateTimeSqlServerTime)
{
SYSTEMTIMEst=newSYSTEMTIME();
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(refst);
}
#endregion
#region获取硬盘序列号
[DllImport("kernel32.dll")]
privatestaticexternintGetVolumeInformation(
stringlpRootPathName,
stringlpVolumeNameBuffer,
intnVolumeNameSize,
refintlpVolumeSerialNumber,
intlpMaximumComponentLength,
intlpFileSystemFlags,
stringlpFileSystemNameBuffer,
intnFileSystemNameSize
);
///<summary>
///获取硬盘序列号
///</summary>
///<paramname="drvID">硬盘盘符[c|d|e|....]</param>
///<returns></returns>
publicstaticstringGetDiskVolume(stringdrvID)
{
constintMAX_FILENAME_LEN=256;
intretVal=0;
intlpMaximumComponentLength=0;
intlpFileSystemFlags=0;
stringlpVolumeNameBuffer=null;
stringlpFileSystemNameBuffer=null;
inti=GetVolumeInformation(
drvID+@":\",
lpVolumeNameBuffer,
MAX_FILENAME_LEN,
refretVal,
lpMaximumComponentLength,
lpFileSystemFlags,
lpFileSystemNameBuffer,
MAX_FILENAME_LEN
);
returnretVal.ToString("x");
}
#endregion
}
}
以上就是本文所分享的代码的全部内容了,希望对大家学习C#能有所帮助。