VC编程通过访问注册表得到串口数量

使用MScomm控件时,无法得到串口数量。由于注册表记录了机器软硬件环境的各种信息,可以通过访问注册表得到串口的数量。在注册表的“HKEY_LOCAL_MACHINE/HARDWARE/DEVICEMAP/SERIALCOMM”键下面记录了串口的所有信息。VC中对注册表的操作函数很多,为了读取串口数量只需要下面的代码段。

CRegKey setreg;

LPCTSTR ps = _T("HARDWARE//DEVICEMAP//SERIALCOMM");

LONG lResult = setreg.Open(HKEY_LOCAL_MACHINE, ps, KEY_READ);

 

if (ERROR_SUCCESS != lResult)

{

AfxMessageBox(_T("注册表打开失败!"));

}

TCHAR pszName[80] , pvalue[80];

LPBYTE data = new BYTE [80];

DWORD pnNameLength = 80;

DWORD lpcvaluename =80;

DWORD size =80;

DWORD type = REG_SZ;

CStringArray CSAcomport;

CString name;

int index = 0;

lResult = RegEnumValue(setreg.m_hKey, index, pszName, &lpcvaluename, NULL, &type, data, &size );

while (lResult != ERROR_NO_MORE_ITEMS && lResult == ERROR_SUCCESS)

{

 

name.Format("%s", data);

CSAcomport.Add(name);

index ++;

lpcvaluename = 80;

size = 80;

lResult = RegEnumValue(setreg.m_hKey, index, pszName, &lpcvaluename, NULL, &type, data, &size );

}

 

执行完这段代码后,在字符串数组CSAcomport中就存储了所有的串口名称,如“COM1,COM2...”。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值