C\#직렬 목록 가 져 오기 실시 간 모니터링 직렬
방법 1:
using Microsoft.Win32;
RegistryKey keyCom = Registry.LocalMachine.OpenSubKey("Hardware//DeviceMap//SerialComm");
if (keyCom != null)
{
string[] sSubKeys = keyCom.GetValueNames();
foreach (string sName in sSubKeys)
{
string sValue = (string)keyCom.GetValue(sName);
this.textBox1.Text = this.textBox1.Text + sValue + "/r/n";
}
}
방법 2:
using System.IO.Ports;
foreach (string vPortName in SerialPort.GetPortNames())
{
this.textBox2.Text = this.textBox2.Text + vPortName + "/r/n";
}
봉 인 된 API 를 공유 합 니 다.구현 효 과 는 다음 과 같 습 니 다.코드 는 다음 과 같 습 니 다:
/// <summary>
/// win32 api
/// </summary>
public enum HardwareEnum
{
//
Win32_Processor, // CPU
Win32_PhysicalMemory, //
Win32_Keyboard, //
Win32_PointingDevice, // , 。
Win32_FloppyDrive, //
Win32_DiskDrive, //
Win32_CDROMDrive, //
Win32_BaseBoard, //
Win32_BIOS, // BIOS
Win32_ParallelPort, //
Win32_SerialPort, //
Win32_SerialPortConfiguration, //
Win32_SoundDevice, // , 。
Win32_SystemSlot, // (ISA & PCI & AGP)
Win32_USBController, // USB
Win32_NetworkAdapter, //
Win32_NetworkAdapterConfiguration, //
Win32_Printer, //
Win32_PrinterConfiguration, //
Win32_PrintJob, //
Win32_TCPIPPrinterPort, //
Win32_POTSModem, // MODEM
Win32_POTSModemToSerialPort, // MODEM
Win32_DesktopMonitor, //
Win32_DisplayConfiguration, //
Win32_DisplayControllerConfiguration, //
Win32_VideoController, // 。
Win32_VideoSettings, // 。
//
Win32_TimeZone, //
Win32_SystemDriver, //
Win32_DiskPartition, //
Win32_LogicalDisk, //
Win32_LogicalDiskToPartition, // 。
Win32_LogicalMemoryConfiguration, //
Win32_PageFile, //
Win32_PageFileSetting, //
Win32_BootConfiguration, //
Win32_ComputerSystem, //
Win32_OperatingSystem, //
Win32_StartupCommand, //
Win32_Service, //
Win32_Group, //
Win32_GroupUser, //
Win32_UserAccount, //
Win32_Process, //
Win32_Thread, //
Win32_Share, //
Win32_NetworkClient, //
Win32_NetworkProtocol, //
Win32_PnPEntity,//all device
}
/// <summary>
/// WMI
/// </summary>
/// <param name="hardType"></param>
/// <param name="propKey"></param>
/// <returns></returns>
public static string[] MulGetHardwareInfo(HardwareEnum hardType, string propKey)
{
List<string> strs = new List<string>();
try
{
using (ManagementObjectSearcher searcher = new ManagementObjectSearcher("select * from " + hardType))
{
var hardInfos = searcher.Get();
foreach (var hardInfo in hardInfos)
{
if (hardInfo.Properties[propKey].Value.ToString().Contains("COM"))
{
strs.Add(hardInfo.Properties[propKey].Value.ToString());
}
}
searcher.Dispose();
}
return strs.ToArray();
}
catch
{
return null;
}
finally
{ strs = null; }
}
// WMI COM
string[] ss = MulGetHardwareInfo(HardwareEnum.Win32_PnPEntity, "Name");
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
WebView2를 Visual Studio 2017 Express에서 사용할 수 있을 때까지Evergreen .Net Framework SDK 4.8 VisualStudio2017에서 NuGet을 사용하기 때문에 패키지 관리 방법을 packages.config 대신 PackageReference를 사용해야...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.