VC编程通过访问注册表得到串口数量的代码 本帖最后由 bjfscasm 于 2010-05-29 16:58:00 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 SHORT RWCenter::GetAllComm(){ HKEY hKey; LONG ret; SHORT retVal = 0; OSVERSIONINFO osvi; BOOL bOsVersionInfoEx; TCHAR keyinfo[100],comm_name[200],ValueName[200]; int i; DWORD sType,Reserved,cbData,cbValueName; ZeroMemory(&osvi, sizeof(OSVERSIONINFO)); osvi.dwOSVersionInfoSize = sizeof(OSVERSIONINFO); memset(keyinfo,0,100*sizeof(TCHAR)); _tcscpy_s(keyinfo,_T("HARDWARE\\DEVICEMAP\\SERIALCOMM")); i=0; sType=REG_SZ;Reserved=0; bOsVersionInfoEx =GetVersionEx(&osvi); ret=RegOpenKeyEx(HKEY_LOCAL_MACHINE,keyinfo,0,KEY_ALL_ACCESS,&hKey); if (ret==ERROR_SUCCESS) { if (osvi.dwPlatformId == VER_PLATFORM_WIN32_NT) { do { cbData=200;cbValueName=200; memset(comm_name,0,200); memset(ValueName,0,200); ret=RegEnumValue(hKey,i,ValueName,&cbValueName,NULL,&sType,(LPBYTE)comm_name,&cbData); if (ret==ERROR_SUCCESS) { //m_list.Add(comm_name); int temp; temp = _tstoi(&comm_name[3]); retVal |= 1 << (temp -1); i++; } }while (ret==ERROR_SUCCESS); } } //CString strPortName = GetSetComName(); //m_ctrlPort.SetWindowText(strPortName); RegCloseKey(hKey); return retVal;} 各位大老们,请帮助解决!!! 求助!让进度条在60秒走完 游戏开发? 在CScrollView中如何实现光标闪烁? 到底用不用CSingleLock和CMultiLock ? 如何设置程序的背景图片,程序基于MDI 请教高手 VARIANT 变量的问题 关于读取本机IP的问题 关于定义一个struct 的 array问题?帮忙阿 在VC下如何使用inp 和outp通过并口连接两台机器? USB转串口线如何编程? 在我看来,行主序矩阵运算比列主序更有优势
SHORT RWCenter::GetAllComm(){
HKEY hKey;
LONG ret;
SHORT retVal = 0;
OSVERSIONINFO osvi;
BOOL bOsVersionInfoEx; TCHAR keyinfo[100],comm_name[200],ValueName[200];
int i;
DWORD sType,Reserved,cbData,cbValueName; ZeroMemory(&osvi, sizeof(OSVERSIONINFO));
osvi.dwOSVersionInfoSize = sizeof(OSVERSIONINFO); memset(keyinfo,0,100*sizeof(TCHAR));
_tcscpy_s(keyinfo,_T("HARDWARE\\DEVICEMAP\\SERIALCOMM")); i=0; sType=REG_SZ;Reserved=0;
bOsVersionInfoEx =GetVersionEx(&osvi); ret=RegOpenKeyEx(HKEY_LOCAL_MACHINE,keyinfo,0,KEY_ALL_ACCESS,&hKey); if (ret==ERROR_SUCCESS)
{
if (osvi.dwPlatformId == VER_PLATFORM_WIN32_NT)
{
do
{
cbData=200;cbValueName=200;
memset(comm_name,0,200);
memset(ValueName,0,200); ret=RegEnumValue(hKey,i,ValueName,&cbValueName,NULL,&sType,(LPBYTE)comm_name,&cbData);
if (ret==ERROR_SUCCESS)
{
//m_list.Add(comm_name);
int temp;
temp = _tstoi(&comm_name[3]);
retVal |= 1 << (temp -1);
i++;
}
}while (ret==ERROR_SUCCESS);
}
} //CString strPortName = GetSetComName();
//m_ctrlPort.SetWindowText(strPortName);
RegCloseKey(hKey);
return retVal;
}