欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C#實現(xiàn)獲取計算機信息的示例代碼

 更新時間:2024年01月31日 09:23:03   作者:lingxiao16888  
這篇文章主要為大家詳細介紹了C#實現(xiàn)獲取計算機軟硬件信息的相關(guā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#中Attribute特性的用法

    C#中Attribute特性的用法

    這篇文章介紹了C#中Attribute特性的用法,文中通過示例代碼介紹的非常詳細。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-07-07
  • C#實現(xiàn)Winform版計算器

    C#實現(xiàn)Winform版計算器

    這篇文章主要為大家詳細介紹了C#實現(xiàn)Winform版計算器,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-05-05
  • 在C#程序中對MessageBox進行定位的方法

    在C#程序中對MessageBox進行定位的方法

    這篇文章主要介紹了在C#程序中對MessageBox進行定位的方法,針對圖形化界面進行調(diào)試,需要的朋友可以參考下
    2015-07-07
  • .net中常用的正則表達式

    .net中常用的正則表達式

    這篇文章介紹了.net中常用的正則表達式,文中通過示例代碼介紹的非常詳細。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-04-04
  • C#播放short或者byte類型的音頻

    C#播放short或者byte類型的音頻

    這篇文章主要為大家詳細介紹了如何使用C#實現(xiàn)播放short或者byte類型的音頻,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2024-12-12
  • C#內(nèi)置泛型委托之Action委托

    C#內(nèi)置泛型委托之Action委托

    這篇文章介紹了C#內(nèi)置泛型委托之Action委托的用法,文中通過示例代碼介紹的非常詳細。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-03-03
  • WPF實現(xiàn)能自由改變形狀的四邊形和六邊形

    WPF實現(xiàn)能自由改變形狀的四邊形和六邊形

    這篇文章主要為大家詳細介紹了WPF如何實現(xiàn)能自由改變形狀的四邊形和六邊形,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2023-03-03
  • C#影院售票系統(tǒng)畢業(yè)設(shè)計(2)

    C#影院售票系統(tǒng)畢業(yè)設(shè)計(2)

    這篇文章主要介紹了C#影院售票系統(tǒng)畢業(yè)設(shè)計,介紹了電影院座位的動態(tài)繪制、電影信息綁定到窗體中如何展現(xiàn)出來,需要的朋友可以參考下
    2015-11-11
  • C#調(diào)用C++ DLL bool返回值始終為true的問題

    C#調(diào)用C++ DLL bool返回值始終為true的問題

    這篇文章主要介紹了C#調(diào)用C++ DLL bool返回值始終為true的問題及解決,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-11-11
  • C#接口歸納總結(jié)實例詳解

    C#接口歸納總結(jié)實例詳解

    本篇文章通過實例代碼對接口做了詳解,需要的朋友可以參考下
    2017-04-04

最新評論