C#實現(xiàn)獲取計算機信息的示例代碼
一、本機信息
1、本機名
public static string getLocalhostName(){ return Environment.GetEnvironmentVariable("COMPUTERNAME"); }
2、獲得本機MAC地址
public static string getLocalhostMac() { string mac = null; ManagementObjectSearcher query = new ManagementObjectSearcher("SELECT * FROM Win32_NetworkAdapterConfiguration"); ManagementObjectCollection queryCollection = query.Get(); foreach (ManagementObject mo in queryCollection) { if (mo["IPEnabled"].ToString() == "True") mac = mo["MacAddress"].ToString(); } return (mac); }
3、獲得計算機名
public static string getComputerName() { return Environment.MachineName; }
4、顯示器分辨率
public static string getResolution() { return SystemInformation.PrimaryMonitorMaximizedWindowSize.Width + " x " + SystemInformation.PrimaryMonitorMaximizedWindowSize.Height; }
5、主顯示器分辨率
public static string getMainResolution() { return SystemInformation.PrimaryMonitorSize.Width + " x " + SystemInformation.PrimaryMonitorSize.Height; }
6、系統(tǒng)路徑
[DllImport("kernel32")] public static extern void GetSystemDirectory(StringBuilder SysDir, int count); public static string getSystemPath() { const int nChars = 128; StringBuilder Buff = new StringBuilder(nChars); GetSystemDirectory(Buff, nChars); return Buff.ToString(); }
二、操作系統(tǒng)信息
1、操作系統(tǒng)類型
public static string getSystemType() { string st = ""; ManagementClass mc = new ManagementClass("Win32_ComputerSystem"); ManagementObjectCollection moc = mc.GetInstances(); foreach (ManagementObject mo in moc) { st = mo["SystemType"].ToString(); } return st; }
2、獲得操作系統(tǒng)位數(shù)
public static string getOSBit() { if (Environment.Is64BitOperatingSystem) { return "64bit." } else { return "32bit."; } }
3、獲得操作系統(tǒng)版本
public static string getOSVersion() { return Environment.OSVersion.VersionString; }
三、處理器信息
1 、處理器個數(shù)
public static string getProcessorCount() { return Environment.ProcessorCount.ToString(); }
四、CPU信息
1、CPU的個數(shù)
public static int getCpuCount() { try { using (ManagementClass mCpu = new ManagementClass("Win32_Processor")) { ManagementObjectCollection cpus = mCpu.GetInstances(); return cpus.Count; } } catch { } return -1; }
2、CPU版本信息
public static string getCpuVersion() { string st = ""; ManagementObjectSearcher mos = new ManagementObjectSearcher("Select * from Win32_Processor"); foreach (ManagementObject mo in mos.Get()) { st = mo["Version"].ToString(); } return st; }
3、CPU名稱信息
public static string getCpuName() { string st = ""; ManagementObjectSearcher driveID = new ManagementObjectSearcher("Select * from Win32_Processor"); foreach (ManagementObject mo in driveID.Get()) { st = mo["Name"].ToString(); } return st; }
4、CPU序列號
public static string getCpuSerialNumber() { string strCpu = null; ManagementClass myCpu = new ManagementClass("win32_Processor"); ManagementObjectCollection myCpuConnection = myCpu.GetInstances(); foreach (ManagementObject myObject in myCpuConnection) { strCpu = myObject.Properties["Processorid"].Value.ToString(); break; } return strCpu; }
5、CPU制造廠商
public static string getCPUManufacturer() { string st = ""; ManagementObjectSearcher mos = new ManagementObjectSearcher("Select * from Win32_Processor"); foreach (ManagementObject mo in mos.Get()) { st = mo["Manufacturer"].ToString(); } return st; }
6、CPU頻率
這里之所以使用string類型的數(shù)組,主要是因為cpu的多核
public static string[] getCpuMHZ() { ManagementClass mc = new ManagementClass("Win32_Processor"); ManagementObjectCollection cpus = mc.GetInstances(); string[] mHz = new string[cpus.Count]; int c = 0; ManagementObjectSearcher mySearch = new ManagementObjectSearcher("select * from Win32_Processor"); foreach (ManagementObject mo in mySearch.Get()) { mHz[c] = mo.Properties["CurrentClockSpeed"].Value.ToString(); c++; } mc.Dispose(); mySearch.Dispose(); return mHz; }
五、顯卡信息
1、顯卡PNPDeviceID
public static string getVideoPNPID() { string st = ""; ManagementObjectSearcher mos = new ManagementObjectSearcher("Select * from Win32_VideoController"); foreach (ManagementObject mo in mos.Get()) { st = mo["PNPDeviceID"].ToString(); } return st; }
六、硬盤信息
1、設(shè)備硬盤的卷標號
public static string getDiskVolumeSerialNumber() { ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration"); ManagementObject disk = new ManagementObject("win32_logicaldisk.deviceid=\"c:\""); disk.Get(); return disk.GetPropertyValue("VolumeSerialNumber").ToString(); }
2、硬盤的大小
public static string getSizeOfDisk() { ManagementClass mc = new ManagementClass("Win32_DiskDrive"); ManagementObjectCollection moj = mc.GetInstances(); foreach (ManagementObject m in moj) { return m.Properties["Size"].Value.ToString(); } return "-1"; }
3、硬盤序列號
public static string getHardDiskSerialNumber() { try { ManagementObjectSearcher searcher = new ManagementObjectSearcher("SELECT * FROM Win32_PhysicalMedia"); string sHardDiskSerialNumber = ""; foreach (ManagementObject mo in searcher.Get()) { sHardDiskSerialNumber = mo["SerialNumber"].ToString().Trim(); break; } return sHardDiskSerialNumber; } catch { return ""; } }
七、主板信息
1、主板序列號
public static string getBIOSSerialNumber() { try { ManagementObjectSearcher searcher = new ManagementObjectSearcher("Select * From Win32_BIOS"); string sBIOSSerialNumber = ""; foreach (ManagementObject mo in searcher.Get()) { sBIOSSerialNumber = mo["SerialNumber"].ToString().Trim(); } return sBIOSSerialNumber; } catch { return ""; } }
2、主板制造廠商
public static string getBoardManufacturer() { SelectQuery query = new SelectQuery("Select * from Win32_BaseBoard"); ManagementObjectSearcher mos = new ManagementObjectSearcher(query); ManagementObjectCollection.ManagementObjectEnumerator data = mos.Get().GetEnumerator(); data.MoveNext(); ManagementBaseObject board = data.Current; return board.GetPropertyValue("Manufacturer").ToString(); }
3、主板編號
public static string getBoardID() { string st = ""; ManagementObjectSearcher mos = new ManagementObjectSearcher("Select * from Win32_BaseBoard"); foreach (ManagementObject mo in mos.Get()) { st = mo["SerialNumber"].ToString(); } return st; }
4、主板型號
public static string getBoardType() { string st = ""; ManagementObjectSearcher mos = new ManagementObjectSearcher("Select * from Win32_BaseBoard"); foreach (ManagementObject mo in mos.Get()) { st = mo["Product"].ToString(); } return st; }
八、內(nèi)存信息
1、物理內(nèi)存大小
public static string getPhysicalMemory() { string st = ""; ManagementClass mc = new ManagementClass("Win32_ComputerSystem"); ManagementObjectCollection moc = mc.GetInstances(); foreach (ManagementObject mo in moc) { st = mo["TotalPhysicalMemory"].ToString(); } return st; }
2、內(nèi)存利用率
[DllImport("kernel32")] private static extern void GlobalMemoryStatus(ref StorageInfo memibfo); [StructLayout(LayoutKind.Sequential)] public struct StorageInfo //此處全是以字節(jié)為單位 { public uint dwMemoryLoad;//內(nèi)存使用率 } public static string getUtilizationRate() { StorageInfo memInfor = new StorageInfo(); GlobalMemoryStatus(ref memInfor); return memInfor.dwMemoryLoad.ToString("0.0"); }
九、網(wǎng)卡信息
1、網(wǎng)卡硬件地址
public static string getMacAddress() { string mac = ""; ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration"); ManagementObjectCollection moc = mc.GetInstances(); foreach (ManagementObject mo in moc) { if ((bool)mo["IPEnabled"] == true) { mac = mo["MacAddress"].ToString(); break; } } return mac; }
2、網(wǎng)卡地址
public static string getNetCardMACAddress() { try { ManagementObjectSearcher searcher = new ManagementObjectSearcher("SELECT * FROM Win32_NetworkAdapter WHERE ((MACAddress Is Not NULL) AND (Manufacturer <> 'Microsoft'))"); string NetCardMACAddress = ""; foreach (ManagementObject mo in searcher.Get()) { NetCardMACAddress = mo["MACAddress"].ToString().Trim(); } return NetCardMACAddress; } catch { return ""; } }
3、適配器信息
public static NetworkInterface[] getNetWorkInfo() { NetworkInterface[] adapters = NetworkInterface.GetAllNetworkInterfaces(); return adapters; } // 設(shè)置內(nèi)容向文本框 public void setContent() { tb_net_work_adapter_num.Text = adapters.Length.ToString(); int index = 0; foreach (NetworkInterface adapter in adapters) { index++; //顯示網(wǎng)絡(luò)適配器描述信息、名稱、類型、速度、MAC 地址 tb_net_wark_adapter_info.Text = tb_net_wark_adapter_info.Text + ("---------------------第" + index + "個適配器信息---------------------") + "\n"; tb_net_wark_adapter_info.Text = tb_net_wark_adapter_info.Text + ("描述信息:" + adapter.Name) + "\n"; tb_net_wark_adapter_info.Text = tb_net_wark_adapter_info.Text + ("類型:" + adapter.NetworkInterfaceType) + "\n"; tb_net_wark_adapter_info.Text = tb_net_wark_adapter_info.Text + ("速度:" + adapter.Speed / 1000 / 1000 + "MB") + "\n"; tb_net_wark_adapter_info.Text = tb_net_wark_adapter_info.Text + ("MAC 地址:" + adapter.GetPhysicalAddress()) + "\n"; //獲取IPInterfaceProperties實例 IPInterfaceProperties adapterProperties = adapter.GetIPProperties(); //獲取并顯示DNS服務(wù)器IP地址信息 IPAddressCollection dnsServers = adapterProperties.DnsAddresses; if (dnsServers.Count > 0) { foreach (IPAddress dns in dnsServers) { tb_net_wark_adapter_info.Text = tb_net_wark_adapter_info.Text + ("DNS 服務(wù)器IP地址:" + dns + "\n"); } } else { tb_net_wark_adapter_info.Text = tb_net_wark_adapter_info.Text + ("DNS 服務(wù)器IP地址:" + "\n"); } } }
結(jié)果樣例
---------------------第1個適配器信息---------------------
描述信息:以太網(wǎng)
類型:Ethernet
速度:0MB
MAC 地址:9883892C3E84
DNS 服務(wù)器IP地址:192.168.0.0
---------------------第2個適配器信息---------------------
描述信息:VirtualBox Host-Only Network #3
類型:Ethernet
速度:1000MB
MAC 地址:0A002700000B
DNS 服務(wù)器IP地址:fec0:0:0:ffff::1%1
DNS 服務(wù)器IP地址:fec0:0:0:ffff::2%1
DNS 服務(wù)器IP地址:fec0:0:0:ffff::3%1
…
十、聲卡信息
1、聲卡PNPDeviceID
public static string getSoundPNPID() { string st = ""; ManagementObjectSearcher mos = new ManagementObjectSearcher("Select * from Win32_SoundDevice"); foreach (ManagementObject mo in mos.Get()) { st = mo["PNPDeviceID"].ToString(); } return st; }
十一、其他信息
1、鼠標按鈕個數(shù)
public static string getMouseButtons() { return SystemInformation.MouseButtons.ToString(); }
十二、網(wǎng)絡(luò)信息
1、網(wǎng)絡(luò)連接
public static string getIsHasNet() { if (SystemInformation.Network) { return "網(wǎng)絡(luò)連接:已連接"; } else { return "網(wǎng)絡(luò)連接:未連接"; } }
2、IP地址
public static string getIP() { try { string st = ""; ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration"); ManagementObjectCollection moc = mc.GetInstances(); foreach (ManagementObject mo in moc) { if ((bool)mo["IPEnabled"] == true) { System.Array ar; ar = (System.Array)(mo.Properties["IpAddress"].Value); st = ar.GetValue(0).ToString(); break; } } moc = null; mc = null; return st; } catch { return "unknow"; } }
以上就是C#實現(xiàn)獲取計算機信息的示例代碼的詳細內(nèi)容,更多關(guān)于C#獲取計算機信息的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
C#影院售票系統(tǒng)畢業(yè)設(shè)計(2)
這篇文章主要介紹了C#影院售票系統(tǒng)畢業(yè)設(shè)計,介紹了電影院座位的動態(tài)繪制、電影信息綁定到窗體中如何展現(xiàn)出來,需要的朋友可以參考下2015-11-11C#調(diào)用C++ DLL bool返回值始終為true的問題
這篇文章主要介紹了C#調(diào)用C++ DLL bool返回值始終為true的問題及解決,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-11-11