獲取串列埠裝置名稱 獲取裝置管理器裡的硬體名稱 轉

2022-07-15 08:06:08 字數 1803 閱讀 2452

簡介:在串列埠通訊的程式中,如果pc上同時連線有多個串列埠,那麼從應用程式裡開啟串列埠時,就很難知道是哪乙個串列埠,這時候就必須要通過裝置管理器去檢視串列埠名稱,這份**就是解決這個問題,呼叫系統api,讀取串列埠裝置的名稱和串口號,不需要再從裝置管理器裡去查詢串列埠。程式關鍵部分如下:

1 using system;

2 using system.collections.generic;

3 using system.linq;

4 using system.text;

5 using system.management;

6 7 namespace studentserialport

8 70 /// 71 /// wmi取硬體資訊

72 ///

73 ///

74 ///

75 ///

76 public static string mulgethardwareinfo(hardwareenum hardtype, string propkey)

77

93 }

94

95 96 }

97 searcher.dispose();

98 }

99 return strs.toarray();

100 }

101 catch

102

105 finally

106

107 }

108 //通過wmi獲取com埠

109 /// 110 /// 串列埠資訊

111 ///

112 ///

113 public static string getserialport()

114

117

118

119

120 }

121 }

使用方式:呼叫api "getserialport"即可獲得裝置列表,示意如下:

1 //通過wmi獲取com埠

2 foreach (string portname in gethardname.getserialport())

3

效果如圖:

如果報錯:

managementobjectsearcher 缺少using

為什麼已經引用了using system.management 使用managementobjectsearcher時為什麼提示未引用空間

解決辦法:

在專案》新增引用....裡面引用system.management 。 再using system.management 就可以了

獲取裝置管理器的資訊

有些時候需要先獲取裝置管理器裡面的硬體資訊,才能執行對應的操作,簡單的鼓搗了一下,貼出來共享。具體有兩個方法,大致來說差不多,流程一樣 懶得整理了,直接貼出來原始體。printdeviceinfo.cpp 定義控制台應用程式的入口點。include stdafx.h include include ...

裝置管理器總結

enable和disable的問題都解決了,剩下的問題都是關於怎麼生成裝置樹並呈現出來的問題,windows作業系統應該有現成的庫函式或者api呼叫,能把整個一棵樹一次性調出。但是c 開發環境下很少使用指標鍊錶的概念,就算系統中有這麼一棵樹,那麼也應該是用鍊錶串起來的,在c 這邊我們要怎麼接收呢?官...

Powershell 檢測裝置管理器

下圖為其中乙個裝置的詳細資訊 name存在且 pnpclass 為 null 的裝置為其他裝置 other devices status 為 error 的裝置為未正常工作裝置 yellow bang pnpclass 表示裝置所屬類 通過比較資料的改變來檢測裝置的變化 function catch...