簡介:在串列埠通訊的程式中,如果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...