int lpFileSystemFlags

时间:2022-01-06 08:15:07


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

}

}