C# 使用win32 API 取得連接埠裝置名稱

要用Management必須先在參考中加入System.Management

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Management;

namespace CSharp_Use_Win32_API_Get_PortNames
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            textBox1.Clear();
            using (var searcher = new ManagementObjectSearcher("SELECT * FROM WIN32_SerialPort"))
            {
                //使用ManagementObjectSearcher來查詢註冊表中的裝置名稱
                var ports = searcher.Get().Cast<ManagementBaseObject>().ToList();//取得所有ManagementBaseObject並轉成List
                string[] PortsName = new string[ports.Count];
                for (int i = 0; i < ports.Count; i++)
                    PortsName[i] = ports[i]["DeviceID"] as string + "-"
                        + ports[i]["Caption"] as string;//取得裝置名稱與連接埠
                textBox1.Text = string.Join("\r\n", PortsName);
            }
        }
    }
}


執行結果
專案下載位置:https://drive.google.com/drive/folders/0B4CEGbmc3kP9eHlrUUxWbGFsNEU?usp=sharing
檔案名稱為 CSharp_Use_Win32_API_Get_PortNames

留言

這個網誌中的熱門文章

UVA 11321 Java