C#實(shí)現(xiàn)獲取計(jì)算機(jī)信息的示例代碼
一、本機(jī)信息
1、本機(jī)名
public static string getLocalhostName(){
return Environment.GetEnvironmentVariable("COMPUTERNAME");
}
2、獲得本機(jī)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、獲得計(jì)算機(jī)名
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 、處理器個(gè)數(shù)
public static string getProcessorCount() {
return Environment.ProcessorCount.ToString();
}
四、CPU信息
1、CPU的個(gè)數(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序列號(hào)
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ù)組,主要是因?yàn)閏pu的多核
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è)備硬盤的卷標(biāo)號(hào)
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、硬盤序列號(hào)
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、主板序列號(hào)
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、主板編號(hào)
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、主板型號(hào)
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 + "個(gè)適配器信息---------------------") + "\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實(shí)例
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個(gè)適配器信息---------------------
描述信息:以太網(wǎng)
類型:Ethernet
速度:0MB
MAC 地址:9883892C3E84
DNS 服務(wù)器IP地址:192.168.0.0
---------------------第2個(gè)適配器信息---------------------
描述信息: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、鼠標(biāo)按鈕個(gè)數(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#實(shí)現(xiàn)獲取計(jì)算機(jī)信息的示例代碼的詳細(xì)內(nèi)容,更多關(guān)于C#獲取計(jì)算機(jī)信息的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
C#使用yield關(guān)鍵字構(gòu)建迭代器詳解
這篇文章主要為大家詳細(xì)介紹了C#使用yield關(guān)鍵字構(gòu)建迭代器的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-10-10
C#中的小數(shù)和百分?jǐn)?shù)計(jì)算與byte數(shù)組操作
這篇文章介紹了C#中的小數(shù)和百分?jǐn)?shù)計(jì)算與byte數(shù)組操作,文中通過示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-04-04
Unity3D使用Shader實(shí)現(xiàn)腐蝕消失
這篇文章主要為大家詳細(xì)介紹了Unity3D使用Shader實(shí)現(xiàn)腐蝕消失,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-02-02
利用WPF實(shí)現(xiàn)系統(tǒng)資源監(jiān)控的完整代碼
在現(xiàn)代軟件開發(fā)中,系統(tǒng)資源監(jiān)控是系統(tǒng)管理、性能分析和故障診斷的重要工具,WPF是構(gòu)建現(xiàn)代化、美觀實(shí)用的系統(tǒng)監(jiān)控應(yīng)用的理想選擇,本文將詳細(xì)介紹如何使用WPF創(chuàng)建一個(gè)功能全面的系統(tǒng)資源監(jiān)控儀表盤,需要的朋友可以參考下2026-01-01
C# mysql 插入數(shù)據(jù),中文亂碼的解決方法
用C#操作mysql時(shí), 插入數(shù)據(jù)中文都是亂碼,只顯示問號(hào),數(shù)據(jù)庫(kù)本身使用的是utf-8字符2013-10-10

