在託管代碼中列出安裝在系統上的調制解調器/電話設備的方法嗎? 如果.Net沒有辦法,你能指出我的方向嗎?列出所有系統調制解調器
回答
WMI將在Win32_POTSModem
類中包含您需要的所有信息。在C#或.Net中,您可以使用System.Management
命名空間來查詢WMI。
在.Net中,您可以使用平臺SDK中的MgmtclassGen.EXE生成表示WMI類的類對象。
命令行會是這樣的:
C:\Program Files\Microsoft SDKs\Windows\v6.0A\Bin\mgmtclassgen.exe Win32_POTSModem /L CS /P c:\POTSModem\Win32_POTSModem.cs
,然後你可以用在你的代碼:
using System;
using System.Collections.Generic;
using System.Management;
using ROOT.CIMV2.Win32;
public class MyClass
{
public static void Main()
{
foreach (POTSModem modem in POTSModem.GetInstances()) {
Console.WriteLine(modem.Description);
}
}
}
輸出看起來是這樣的:
ThinkPad Modem - Internal Modem
Speed: 56000
也可能想看看這篇文章:CodeProject: How To: (Almost) Everything In WMI via C# - Part 3: Hardware.。作者創建了一個類似於MgmtclassGen.exe的WMI對象的簡單類包裝器,但其全部都爲您完成。
只是對後代的一些想法。
@Christopher_G_Lewis提供了非常好的解決方案。 但在使用WMI之前,我們必須檢查Windows Management Instrumentation
(WMI
,服務名稱Winmgmt
)是否正在運行(怎麼辦?)。當然,MS建議不要觸摸這項服務,因爲它是系統內容的一部分,但有時候人們會關閉它。
此外,在使用前有時可能會對check WMI version有所幫助。
如果你想獲得調制解調器列表這是此刻連接,你可以檢查出this solution。它工作緩慢,但顯示所有連接的調制解調器並排除Null modem cables
。
感謝您指出了陷阱。 – 2013-03-14 13:27:43
- 1. 列出所有android系統
- 2. 系統調用:解讀的ktrace輸出
- 3. 瞭解系統調用dup()?
- 4. FreeBSD從另一個系統調用發出系統調用
- 5. 系統調用fork輸出:
- 6. UNIX系統調用列表?
- 7. 檢查調制解調器
- 8. GSM調制解調器庫
- 9. 系統(「」)調用
- 10. 列出Linux系統中的所有硬盤驅動器
- 11. 查看Java程序所做的所有系統調用
- 12. 調制解調器調用在c + +
- 13. 調制解調器在發出ATDTnnnnnnn後發出ERROR
- 14. 將調制解調器從GSM調制解調器傳輸到PC
- 15. 使用調制解調器的串口類調制解調器通信
- 16. 無法理解read()系統調用
- 17. 無法理解select()系統調用
- 18. 瞭解PHP事件調度系統
- 19. MIPS:系統調用
- 20. 調用C「系統」 ++
- 21. 調試android系統
- 22. Ptracing系統調用
- 23. 調用android系統
- 24. Pipe()系統調用
- 25. sys_execve系統調用
- 26. 管系統調用
- 27. python系統調用
- 28. SQL調度系統
- 29. indir系統調用
- 30. 系統調用庫
調制解調器?我記得那些...雖然我也記得軟盤和打印機... – tsilb 2009-11-18 15:02:51