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

C#使用WMI獲取硬盤參數(shù)的實現(xiàn)方法

 更新時間:2024年06月16日 11:14:07   作者:0564丶Kang  
因為需求需要涉及獲取硬盤的SN參數(shù),但是又不想要獲取到U盤或移動硬盤設備的SN,所以就淺淺的研究了一下,本文給大家介紹了C#使用WMI獲取硬盤參數(shù)的實現(xiàn)方法,需要的朋友可以參考下

背景

因為需求需要涉及獲取硬盤的SN參數(shù),但是又不想要獲取到U盤或移動硬盤設備的SN,所以就淺淺的研究了一下。
以下就是我目前發(fā)現(xiàn)的一些參數(shù)的作用,夠我用了。。。

涉及框架及庫

NuGet自己安裝哈

System.Management

WMI查詢小工具

為了方便我調試代碼,這里花了幾分鐘麻了一個WMI查詢結果輸出的小公舉
項目代碼就不發(fā)了,就只有兩個文件MainWindow.xaml.csMainWindow.xaml,從如此LOW的界面也能看出來,沒有其它代碼了

前端代碼:

<Window x:Class="WMIQuery.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:WMIQuery"
        mc:Ignorable="d" WindowStartupLocation="CenterScreen"
        Title="WMIQuery" Height="450" Width="800">
    <Grid Margin="5 5 5 5">
        <Grid.RowDefinitions>
            <RowDefinition Height="Auto"></RowDefinition>
            <RowDefinition Height="Auto"></RowDefinition>
            <RowDefinition Height="Auto"></RowDefinition>
            <RowDefinition Height="Auto"></RowDefinition>
            <RowDefinition Height="*"></RowDefinition>
            <RowDefinition Height="Auto"></RowDefinition>
            <RowDefinition Height="Auto"></RowDefinition>
        </Grid.RowDefinitions>
        <TextBlock Grid.Row="0" Text="Query:"></TextBlock>
        <TextBox Grid.Row="1" x:Name="txt_query" TextWrapping="Wrap" AcceptsReturn="True" AcceptsTab="True" Height="60"></TextBox>
        <StackPanel Grid.Row="2" Margin="0 5 0 5" Orientation="Horizontal">
            <Button Content="執(zhí)行" x:Name="btn_start" Click="btn_start_Click"></Button>
        </StackPanel>
        <TextBlock Grid.Row="3" Text="Out:"></TextBlock>
        <TextBox Grid.Row="4" x:Name="txt_out"></TextBox>
    </Grid>
</Window>

后端代碼:

using System;
using System.Text;
using System.Windows;
using System.Management;

namespace WMIQuery
{
    /// <summary>
    /// MainWindow.xaml 的交互邏輯
    /// </summary>
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
        }

        private void btn_start_Click(object sender, RoutedEventArgs e)
        {
            var query = txt_query.Text;
            if (string.IsNullOrEmpty(query) || string.IsNullOrWhiteSpace(query))
            {
                MessageBox.Show("查詢語句不能為空!", "錯誤", MessageBoxButton.OK, MessageBoxImage.Error);
                return;
            }
            var outBuilder = new StringBuilder();
            try
            {
                var searcher = new ManagementObjectSearcher(query);
                int i = 0;
                foreach (var drive in searcher.Get())
                {
                    outBuilder.AppendLine($"===>Index:{i++}<===");
                    foreach (var item in drive.Properties)
                    {
                        outBuilder.AppendLine(item.Name + ": " + item.Value);
                    }
                    outBuilder.AppendLine();
                }
                txt_out.Text = outBuilder.ToString();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "錯誤", MessageBoxButton.OK, MessageBoxImage.Error);
            }
        }
    }
}

在Query框填寫我們的查詢語句,點擊執(zhí)行

在這里插入圖片描述

也可以只查詢我們想要的數(shù)據(jù),反正使用就像SQL一樣簡單

在這里插入圖片描述

參數(shù)解釋

在這里插入圖片描述

在這里插入圖片描述

U盤

  • InterfaceTypeUSB
  • MediaTypeRemovable Media

移動硬盤

  • InterfaceTypeSCSI或其他
  • MediaTypeExternal hard disk media

本機設備

  • InterfaceTypeSCSI、IDE或其他,具體怎么安裝,走什么總線
  • MediaTypeFixed hard disk media

總結

  • 移動固態(tài)硬盤走的是SCSI也就是NVMe的總線,或者是IDE,也就是傳統(tǒng)的走線
  • 本地如果是NVMe的硬盤,走的應該也是SCSI總線,如果是普通SATA接口的,應該是IDE

不是所有的M.2硬盤都是NVMe協(xié)議

在這里插入圖片描述

  • InterfaceType的值,主要是看設備走什么總線去判斷的
  • 如果只是需要判斷移動設備還是本機設備,直接在MediaType判斷就行,比如獲取本機固定的硬盤,不想包含U盤或移動硬盤,只需要添加執(zhí)行下面的語句:
SELECT * FROM Win32_DiskDrive WHERE MediaType = 'Fixed hard disk media'

和SQL還是有區(qū)別的,語句后面不能有分號,字段不能用AS映射成有好名稱,能用LIKE

在這里插入圖片描述

以上就是C#使用WMI獲取硬盤參數(shù)的實現(xiàn)方法的詳細內容,更多關于C# WMI獲取硬盤參數(shù)的資料請關注腳本之家其它相關文章!

相關文章

  • C#使用Windows Service的簡單教程(創(chuàng)建、安裝、卸載、調試)

    C#使用Windows Service的簡單教程(創(chuàng)建、安裝、卸載、調試)

    這篇文章主要為大家詳細介紹了C#創(chuàng)建、安裝、卸載、調試Windows Service(Windows 服務)的簡單教程,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-01-01
  • C#實現(xiàn)NPOI的Excel導出詳解

    C#實現(xiàn)NPOI的Excel導出詳解

    這篇文章主要介紹了C#實現(xiàn)NPOI的Excel導出的示例代碼,文中的實現(xiàn)過程講解詳細,對我們的學習或工作有一定的幫助,感興趣的可以跟隨小編一起學習一下
    2022-01-01
  • c# 單例模式的實現(xiàn)方法

    c# 單例模式的實現(xiàn)方法

    這篇文章主要介紹了c# 單例模式的實現(xiàn)方法,文中講解非常細致,代碼幫助大家更好的理解和學習,感興趣的朋友可以了解下
    2020-08-08
  • C#語法糖(Csharp Syntactic sugar)大匯總

    C#語法糖(Csharp Syntactic sugar)大匯總

    首先需要聲明的是“語法糖”這個詞絕非貶義詞,它可以給我?guī)矸奖?,是一種便捷的寫法,編譯器會幫我們做轉換;而且可以提高開發(fā)編碼的效率,在性能上也不會帶來損失。這讓java開發(fā)人員羨慕不已,呵呵。
    2010-06-06
  • C#非遞歸先序遍歷二叉樹實例

    C#非遞歸先序遍歷二叉樹實例

    這篇文章主要介紹了C#非遞歸先序遍歷二叉樹的實現(xiàn)方法,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-07-07
  • C#游戲開發(fā)之實現(xiàn)貪吃蛇游戲

    C#游戲開發(fā)之實現(xiàn)貪吃蛇游戲

    這篇文章主要為大家詳細介紹了C#如何實現(xiàn)經(jīng)典貪吃蛇游戲,文中的示例代碼講解詳細,對我們學習C#有一定的幫助,感興趣的小伙伴可以跟隨小編一起了解一下
    2023-01-01
  • C#實現(xiàn)HSL顏色值轉換為RGB的方法

    C#實現(xiàn)HSL顏色值轉換為RGB的方法

    這篇文章主要介紹了C#實現(xiàn)HSL顏色值轉換為RGB的方法,涉及C#數(shù)值判定與轉換的相關技巧,需要的朋友可以參考下
    2015-06-06
  • DataTables List互相轉換的實現(xiàn)類示例

    DataTables List互相轉換的實現(xiàn)類示例

    這篇文章主要介紹了將DataTable轉換為List,將List轉換為DataTable的實現(xiàn)類實例方法,大家參考使用吧
    2013-11-11
  • C#流類FileStream學習使用筆記

    C#流類FileStream學習使用筆記

    這篇文章主要介紹了C#流類FileStream學習使用筆記,本文直接給出示例代碼,代碼中每一步都有詳細注釋,需要的朋友可以參考下
    2015-06-06
  • C#實現(xiàn)客戶端彈出消息框封裝類實例

    C#實現(xiàn)客戶端彈出消息框封裝類實例

    這篇文章主要介紹了C#實現(xiàn)客戶端彈出消息框封裝類,實例分析了C#彈出窗口的實現(xiàn)技巧,非常具有實用價值,需要的朋友可以參考下
    2015-03-03

最新評論