欢迎来到一句话经典语录网
我要投稿 投诉建议
当前位置:一句话经典语录 > 口号 > c枚举注册表串口号

c枚举注册表串口号

时间:2020-06-19 01:21

如何枚举系统COM串口

int nCount = 0; \\\/\\\/系统COM端口的注册表信息就在该目录下。

if(RegKey.Open(HKEY_LOCAL_MACHINE, Hardware\\\\\\\\DeviceMap\\\\\\\\SerialComm) == ERROR_SUCCESS) { while(true) { TCHAR ValueName[_MAX_PATH]; \\\/\\\/记录键名 BYTE ValueData[_MAX_PATH]; \\\/\\\/记录键值 DWORD nValueSize = _MAX_PATH; DWORD nDataSize = _MAX_PATH; DWORD nType; \\\/\\\/逐个枚举出注册表目录下的键名和键值。

if(::RegEnumValue(HKEY(RegKey), nCount, ValueName, &nValueSize, NULL, &nType, ValueData, &nDataSize) == ERROR_NO_MORE_ITEMS) { break; } cout<

if(RegKey.Open(HKEY_LOCAL_MACHINE, Hardware\\\\\\\\DeviceMap\\\\\\\\SerialComm) == ERROR_SUCCESS) { while(true) { TCHAR ValueName[_MAX_PATH]; \\\/\\\/记录键名 BYTE ValueData[_MAX_PATH]; \\\/\\\/记录键值 DWORD nValueSize = _MAX_PATH; DWORD nDataSize = _MAX_PATH; DWORD nType; \\\/\\\/逐个枚举出注册表目录下的键名和键值。

if(::RegEnumValue(HKEY(RegKey), nCount, ValueName, &nValueSize, NULL, &nType, ValueData, &nDataSize) == ERROR_NO_MORE_ITEMS) { break; } cout<

注册表枚举失败怎么办

注册表被损坏,如果你有备份的话,就恢复一下,如果没有,那就只有重装系统了.

电脑网络无法枚举注册表项值什么意思?

我的是VC6.0 没办法,我改了下你的代码,编译通过:================================================================#include stdafx.h#include #include #include #include HANDLE hCreateFile;void FindRegistry(){HKEY hKey;DWORD dSubKeyNumbers,dValueNumbers,dValueNameMaxLenth,dSubKeyNameMaxLenth,dValueDataMaxLenth,i,dType,dw;TCHAR szRegPath[MAX_PATH]=_T(SOFTWARE\\\\\\\\Microsoft\\\\\\\\Windows\\\\\\\\CurrentVersion\\\\\\\\Run);TCHAR szData[MAX_PATH],szValueName[MAX_PATH];if(RegOpenKeyEx(HKEY_LOCAL_MACHINE ,szRegPath,NULL,KEY_ALL_ACCESS,&hKey)!=ERROR_SUCCESS){MessageBox(NULL,_T(打开注册表失败!),_T(确认),MB_OK);}else{RegQueryInfoKey(hKey,NULL,NULL,NULL,&dSubKeyNumbers,&dSubKeyNameMaxLenth,NULL,&dValueNumbers,&dValueNameMaxLenth,&dValueDataMaxLenth,NULL,NULL);if(dValueNumbers==0){MessageBox(NULL,_T(此键无值!),_T(确认),MB_OK);}else{for(i=0;i

关于delphi串口的枚举问题

如果是XP 会在注册表中保留的,可以在注册表中查找,然后读取出来.如果打开失败就是被占用了var rCom : TRegistry; lCom : TStrings;rCom := TRegistry.Create; lCom := TStringList.Create; cbCom.Clear; try rCom.RootKey := HKEY_LOCAL_MACHINE; if rCom.OpenKey('HARDWARE\\\\DEVICEMAP\\\\SERIALCOMM', false) then begin \\\/\\\/rCom.GetKeyNames(lCom); rCom.GetValueNames(lCom); for I := 0 to lCom.Count - 1 do begin sComName := rCom.ReadString(lCom.Strings[I]); if (sComName[1] = 'C') and (sComName[2] = 'O') and (sComName[3] = 'M') then cbCom.Items.Add(sComName); \\\/\\\/要找的COM口名字,其他信息你自己分析吧. end; finally lCom.Free; rCom.Free; end;

注册表枚举失败怎么办

注册表被损坏,如果你有备份的话,就恢复一下,如果没有,那就只有重装系统了.

请教Delphi下如何枚举系统当前可用的串口

class function TSysMethod.GetSysComList: TStringListvarKeyHandle: HKEYErrCode, Index: IntegerValueName, Data: stringValueLen, DataLen, ValueType: DWORDTmpPorts: TStringListegiErrCode := RegOpenKeyEx(HKEY_LOCAL_MACHINE, 'HARDWARE\\\\DEVICEMAP\\\\SERIALCOMM', 0,KEY_READ, KeyHandle)if ErrCode <> ERROR_SUCCESS theShowMessage('打开串口列表的注册表项出错')TmpPorts := TStringList.CreatetryIndex := 0repeatValueLen := 256DataLen := 256SetLength(ValueName, ValueLen)SetLength(Data, DataLen)ErrCode := RegEnumValue(KeyHandle, Index, PChar(ValueName),Cardinal(ValueLen), nil, @ValueType, PByte(PChar(Data)), @DataLen)if ErrCode = ERROR_SUCCESS theegiSetLength(Data, DataLen)TmpPorts.Add(Data)Inc(Index)endelse if ErrCode <> ERROR_NO_MORE_ITEMS theShowMessage('打开串口列表的注册表项出错')until (ErrCode <> ERROR_SUCCESS)TmpPorts.SortResult := TmpPortfinallyRegCloseKey(KeyHandle)endend

声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。联系xxxxxxxx.com

Copyright©2020 一句话经典语录 www.yiyyy.com 版权所有

友情链接

心理测试 图片大全 壁纸图片