- 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
- }
- }
- //该片段来自于http://www.codesnippet.cn/detail/1808201614951.html
来源: http://www.codesnippet.cn/detail/1808201614951.html