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#能有所帮助。