| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373 |
- //************************************************************************
- // https://github.com/yuzhengyang
- // author: yuzhengyang
- // date: 2017.3.29 - 2017.7.12
- // desc: 计算机信息
- // Copyright (c) yuzhengyang. All rights reserved.
- //************************************************************************
- using System;
- using System.Collections.Generic;
- using System.Management;
- using System.Net.NetworkInformation;
- using System.Runtime.InteropServices;
- namespace Y.Utils.WindowsUtils.InfoUtils
- {
- /// <summary>
- /// 计算机信息
- /// </summary>
- public static class ComputerInfoTool
- {
- const string UNKNOW = "unknow";
- /// <summary>
- /// CPU 序列号
- /// </summary>
- /// <returns></returns>
- public static string CPUID()
- {
- ManagementClass mc = null;
- ManagementObjectCollection moc = null;
- string ProcessorId = "";
- try
- {
- mc = new ManagementClass("Win32_Processor");
- moc = mc.GetInstances();
- foreach (ManagementObject mo in moc)
- {
- ProcessorId = mo.Properties["ProcessorId"].Value.ToString();
- }
- return ProcessorId;
- }
- catch (Exception e)
- {
- return UNKNOW;
- }
- finally
- {
- if (moc != null) moc.Dispose();
- if (mc != null) mc.Dispose();
- }
- }
- /// <summary>
- /// CPU 型号
- /// </summary>
- /// <returns></returns>
- public static string CPUModel()
- {
- try
- {
- string result = "";
- ManagementObjectSearcher searcher = new ManagementObjectSearcher("select * from Win32_Processor");
- foreach (ManagementObject item in searcher.Get())
- {
- result = item["Name"].ToString();
- }
- return result;
- }
- catch
- { return UNKNOW; }
- }
- /// <summary>
- /// 显卡型号
- /// </summary>
- /// <returns></returns>
- public static List<string> GraphicsCardModel()
- {
- try
- {
- List<string> rs = new List<string>();
- ManagementObjectSearcher searcher = new ManagementObjectSearcher("select * from Win32_VideoController");
- foreach (ManagementObject item in searcher.Get())
- {
- rs.Add(item["Name"].ToString());
- }
- return rs;
- }
- catch { return null; }
- }
- /// <summary>
- /// 声卡型号
- /// </summary>
- /// <returns></returns>
- public static List<string> SoundCardModel()
- {
- try
- {
- List<string> rs = new List<string>();
- ManagementObjectSearcher searcher = new ManagementObjectSearcher("select * from Win32_SoundDevice");
- foreach (ManagementObject item in searcher.Get())
- {
- rs.Add(item["Name"].ToString());
- }
- return rs;
- }
- catch
- { return null; }
- }
- /// <summary>
- /// 物理内存
- /// </summary>
- /// <returns></returns>
- public static ulong TotalPhysicalMemory()
- {
- ulong size = 0;
- try
- {
- ManagementClass mc = new ManagementClass("Win32_ComputerSystem");
- ManagementObjectCollection moc = mc.GetInstances();
- foreach (ManagementObject mo in moc)
- {
- ulong.TryParse(mo["TotalPhysicalMemory"].ToString(), out size);
- }
- }
- catch { }
- return size;
- }
- /// <summary>
- /// 可用物理内存
- /// </summary>
- /// <returns></returns>
- public static ulong AvailablePhysicalMemory()
- {
- ulong size = 0;
- try
- {
- ManagementClass mc = new ManagementClass("Win32_OperatingSystem");
- ManagementObjectCollection moc = mc.GetInstances();
- foreach (ManagementObject mo in moc)
- {
- ulong.TryParse(mo["FreePhysicalMemory"].ToString(), out size);
- }
- }
- catch { }
- return size;
- }
- /// <summary>
- /// 硬盘型号
- /// </summary>
- /// <returns></returns>
- public static List<string> HardDiskModel()
- {
- try
- {
- List<string> rs = new List<string>();
- ManagementClass mc = new ManagementClass("Win32_DiskDrive");
- ManagementObjectCollection moc = mc.GetInstances();
- foreach (ManagementObject mo in moc)
- {
- rs.Add(mo.Properties["Model"].Value.ToString() + "--" + mo.Properties["SerialNumber"].Value.ToString());
- //result = (string);
- //if (!result.ToLower().Contains("usb"))
- // return result;
- }
- return rs;
- }
- catch { return null; }
- }
- #region 获取硬盘ID
- public static string GetHDiskID(string hdModel)
- {
- try
- {
- string result = "";
- ManagementClass mc = new ManagementClass("Win32_DiskDrive");
- ManagementObjectCollection moc = mc.GetInstances();
- foreach (ManagementObject mo in moc)
- {
- if (mo.Properties["Model"].Value.ToString().Contains(hdModel))
- {
- result = (string)mo.Properties["SerialNumber"].Value;
- }
- }
- return result.Trim();
- }
- catch
- { return UNKNOW; }
- }
- #endregion
- #region 获取操作系统
- public static string GetOS()
- {
- try
- {
- string result = "";
- ManagementObjectSearcher MySearcher = new ManagementObjectSearcher("SELECT * FROM Win32_OperatingSystem");
- foreach (ManagementObject MyObject in MySearcher.Get())
- {
- result = MyObject["Caption"].ToString();
- }
- return result;
- }
- catch
- { return UNKNOW; }
- }
- #endregion
- #region 获取系统类型
- public static string GetSystemType()
- {
- try
- {
- string result = "";
- ManagementClass mc = new ManagementClass("Win32_ComputerSystem");
- ManagementObjectCollection moc = mc.GetInstances();
- foreach (ManagementObject mo in moc)
- {
- result = mo["SystemType"].ToString();
- }
- return result;
- }
- catch
- { return UNKNOW; }
- }
- #endregion
- #region 获取系统安装日期
- public static string GetSystemInstallDate()
- {
- try
- {
- string result = "";
- ManagementObjectSearcher MySearcher = new ManagementObjectSearcher("SELECT * FROM Win32_OperatingSystem");
- foreach (ManagementObject MyObject in MySearcher.Get())
- {
- result = MyObject["InstallDate"].ToString().Substring(0, 14);
- result = result.Insert(12, ":");
- result = result.Insert(10, ":");
- result = result.Insert(8, " ");
- result = result.Insert(6, "-");
- result = result.Insert(4, "-");
- }
- return result;
- }
- catch
- { return UNKNOW; }
- }
- #endregion
- #region 获取登陆用户名
- public static string GetLoginUserName()
- {
- try
- {
- string result = "";
- ManagementClass mc = new ManagementClass("Win32_ComputerSystem");
- ManagementObjectCollection moc = mc.GetInstances();
- foreach (ManagementObject mo in moc)
- {
- result = mo["UserName"].ToString();
- }
- return result;
- }
- catch
- { return UNKNOW; }
- }
- #endregion
- #region 获取计算机名
- public static string GetComputerName()
- {
- try
- {
- string result = "";
- result = System.Environment.GetEnvironmentVariable("ComputerName");
- return result;
- }
- catch
- { return UNKNOW; }
- }
- #endregion
- #region 获取所有用户名
- public static List<string> GetSysUserNames()
- {
- int EntriesRead;
- int TotalEntries;
- int Resume;
- IntPtr bufPtr;
- List<string> temp = new List<string>();
- NetUserEnum(null, 0, 2, out bufPtr, -1, out EntriesRead, out TotalEntries, out Resume);
- if (EntriesRead > 0)
- {
- USER_INFO_0[] Users = new USER_INFO_0[EntriesRead];
- IntPtr iter = bufPtr;
- for (int i = 0; i < EntriesRead; i++)
- {
- Users[i] = (USER_INFO_0)Marshal.PtrToStructure(iter, typeof(USER_INFO_0));
- iter = (IntPtr)((long)iter + Marshal.SizeOf(typeof(USER_INFO_0)));
- temp.Add(Users[i].Username);
- }
- NetApiBufferFree(bufPtr);
- }
- return temp;
- }
- [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
- private struct USER_INFO_0
- {
- public string Username;
- }
- [DllImport("Netapi32.dll ")]
- extern static int NetUserEnum([MarshalAs(UnmanagedType.LPWStr)]
- string servername,
- int level,
- int filter,
- out IntPtr bufptr,
- int prefmaxlen,
- out int entriesread,
- out int totalentries,
- out int resume_handle);
- [DllImport("Netapi32.dll ")]
- extern static int NetApiBufferFree(IntPtr Buffer);
- #endregion
- #region 获取主板制造商
- public static string GetBoardManufacturer()
- {
- try
- {
- string result = "";
- ManagementObjectSearcher MySearcher = new ManagementObjectSearcher("SELECT * FROM Win32_BaseBoard");
- foreach (ManagementObject MyObject in MySearcher.Get())
- {
- result = MyObject["Manufacturer"].ToString();
- }
- return result;
- }
- catch
- { return UNKNOW; }
- }
- #endregion
- #region 获取主板型号
- public static string GetBoardProduct()
- {
- try
- {
- string result = "";
- ManagementObjectSearcher MySearcher = new ManagementObjectSearcher("SELECT * FROM Win32_BaseBoard");
- foreach (ManagementObject MyObject in MySearcher.Get())
- {
- result = MyObject["Product"].ToString();
- }
- return result;
- }
- catch
- { return UNKNOW; }
- }
- #endregion
- #region 获取主板序列号
- public static string GetBoardSerialNumber()
- {
- try
- {
- string result = "";
- ManagementObjectSearcher MySearcher = new ManagementObjectSearcher("SELECT * FROM Win32_BaseBoard");
- foreach (ManagementObject MyObject in MySearcher.Get())
- {
- result = MyObject["SerialNumber"].ToString();
- }
- return result;
- }
- catch
- { return UNKNOW; }
- }
- #endregion
- }
- }
|