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

C# 獲取 PC 序列號的方法示例

 更新時間:2018年07月31日 10:41:44   作者:林德熙  
這篇文章主要介紹了C# 獲取 PC 序列號的方法示例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

在 C++ 需要使用 GetSystemFirmwareTable 的方法來獲得 PC 的序列號,需要寫的代碼很多,但是在 C# 可以使用 WMI 來拿到序列號

首先是安裝 System.Management ,安裝了這個庫,在 dotnet framework 和 dotnet core 都可以使用本文的方法獲取 PC 的序列號

安裝 System.Management 的方法是通過 Nuget 搜索System.Management然后安裝,如果使用的是VisualStudio 2017項目格式就可以復制下面代碼到項目文件

<PackageReference Include="System.Management" Version="4.5.0" />

我比較喜歡第二個方法來安裝,因為這個速度比較快

安裝完成使用 WMI 拿到序列號需要的代碼很少,請看下面

        var search = new ManagementObjectSearcher("SELECT * FROM Win32_BIOS");
        var mobos = search.Get();
        foreach (var temp in mobos)
        {
          object serial = temp["SerialNumber"]; // ProcessorID if you use Win32_CPU
          pcsn = serial.ToString();
          Console.WriteLine(pcsn);
        }

這樣就可以拿到序列號,但是可能有些設備是沒有序列號,很多時候是返回下面代碼

To be filled by O.E.M
To be filled by O.E.M.
Default
Default string

上面代碼最后一行就是空白,所以需要先做判斷是不是存在序列號,所有代碼請看下面

    /// <summary>
    /// 獲得pc號
    /// </summary>
    public static string GetPcsnString()
    {
      var pcsn = "";
      try
      {
        var search = new ManagementObjectSearcher("SELECT * FROM Win32_BIOS");
        var mobos = search.Get();
        foreach (var temp in mobos)
        {
          object serial = temp["SerialNumber"]; // ProcessorID if you use Win32_CPU
          pcsn = serial.ToString();
          Console.WriteLine(pcsn);

          if
          (
            !string.IsNullOrEmpty(pcsn)
            && pcsn != "To be filled by O.E.M" //沒有找到
            && !pcsn.Contains("O.E.M")
            && !pcsn.Contains("OEM")
            && !pcsn.Contains("Default")
          )
          {
            break;
          }
          else
          {
            Console.WriteLine("默認值");
          }
        }
      }
      catch (Exception e)
      {
        Debug.WriteLine(e);
        // 無法處理
      }

      return pcsn;
    }

需要知道,使用這個方法獲取 序列號是比較耗性能的,建議放在其他線程獲取

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • C#中獲取數(shù)據(jù)的方法實例

    C#中獲取數(shù)據(jù)的方法實例

    這篇文章主要給大家介紹了關于C#中獲取數(shù)據(jù)的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-01-01
  • C#中緊耦合Tight Coupling和松耦合Loose Coupling的實現(xiàn)

    C#中緊耦合Tight Coupling和松耦合Loose Coupling的實現(xiàn)

    緊耦合和松耦合是描述模塊或組件之間耦合程度的兩個概念,本文主要介紹了C#中緊耦合Tight Coupling和松耦合Loose Coupling的實現(xiàn),具有一定的參考價值,感興趣的可以了解一下
    2024-01-01
  • C#實現(xiàn)Markdown內容轉為Word或PDF

    C#實現(xiàn)Markdown內容轉為Word或PDF

    Markdown作為一種輕量級的標記語言,因其簡潔易讀、語法清晰的特點被廣大程序員和技術文檔編寫者所青睞,本文主要介紹了如何使用C#實現(xiàn)Markdown內容轉為Word或PDF,需要的可以參考下
    2024-03-03
  • Repeater控件綁定的三種方式

    Repeater控件綁定的三種方式

    Repeater 控件用于顯示重復的信息,這些信息被綁定在該控件上。一般項目中經常出現(xiàn)三種使用方式
    2013-05-05
  • user32.dll 函數(shù)說明小結

    user32.dll 函數(shù)說明小結

    這篇文章主要介紹了user32.dll 函數(shù)說明,需要的朋友可以參考下
    2018-06-06
  • C#基于簡單工廠模式實現(xiàn)的計算器功能示例

    C#基于簡單工廠模式實現(xiàn)的計算器功能示例

    這篇文章主要介紹了C#基于簡單工廠模式實現(xiàn)的計算器功能,結合簡單實例形式分析了C#使用工廠模式的數(shù)值運算相關操作技巧,需要的朋友可以參考下
    2017-11-11
  • c# record的使用場景

    c# record的使用場景

    這篇文章主要介紹了c# record的使用場景,幫助大家更好的理解和學習使用c#的新特性,感興趣的朋友可以了解下
    2021-02-02
  • 在C#中使用二叉樹實時計算海量用戶積分排名的實現(xiàn)詳解

    在C#中使用二叉樹實時計算海量用戶積分排名的實現(xiàn)詳解

    這篇文章主要介紹了在C#中使用二叉樹實時計算海量用戶積分排名的實現(xiàn)詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-01-01
  • C#開發(fā)windows服務實現(xiàn)自動從FTP服務器下載文件

    C#開發(fā)windows服務實現(xiàn)自動從FTP服務器下載文件

    這篇文章主要為大家詳細介紹了C#開發(fā)windows服務實現(xiàn)自動從FTP服務器下載文件,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-03-03
  • 算法基礎之算法設計與分析

    算法基礎之算法設計與分析

    這篇文章主要介紹了算法基礎之算法設計與分析,貪心算法是一種解決優(yōu)化問題的算法設計方法,其核心思想是在每一步選擇當前狀態(tài)下的最優(yōu)解,從而希望最終達到全局最優(yōu)解,需要的朋友可以參考下
    2023-10-10

最新評論