0

我是winapi的新手,遇到了很多麻烦

试图提取所有连接的 COM 端口并将它们写入提示行。

HKEY hKey;
if (RegOpenKey(HKEY_LOCAL_MACHINE,TEXT("HARDWARE\\DEVICEMAP\\SERIALCOMM"),&hKey)==ERROR_SUCCESS)
{
DWORD NumKeys;
DWORD i;
TCHAR KeyNameBuf[255];
DWORD keyNameSizBuf=255;
RegQueryInfoKey(hKey,NULL,NULL,NULL,NULL,NULL,NULL,&NumKeys,NULL,NULL,NULL,NULL);
for (i=0;i<NumKeys-1;i++)
{
    keyNameSizBuf=15;
    RegEnumKeyEx(hKey,i,KeyNameBuf,&keyNameSizBuf,NULL,NULL,NULL,NULL);
    qDebug() <<KeyNameBuf;
}
}

问题:它不会更改 KeyNameBuf 并将其保持为空。

有任何想法吗?谢谢,如果这是微不足道的事情,请提前道歉......

4

1 回答 1

0

找到的解决方案:RegEnumKeyEx 检索数据指针(可选参数 7),然后将 int 从 Byte* 转换为 const char *

于 2012-06-30T23:27:00.380 回答