源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

C#利用win32 Api 修改本地系统时间、获取硬盘序列号

  • 时间:2022-09-02 08:48 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:C#利用win32 Api 修改本地系统时间、获取硬盘序列号
C#利用win32 Api 修改本地系统时间、获取硬盘序列号,可以用于软件注册机制的编写!
[u]复制代码[/u] 代码如下:
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#能有所帮助。
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部