回 帖 发 新 帖 刷新版面

主题:[讨论]BCB6 Registry 求救

我要读取目前PC上有哪些 COM Prot, 想从读取Registry 信息得知. 
 
我的程序:
void __fastcall TMainForm::Button2Click(TObject *Sender)
{
     int i;

     TRegistry* Reg = new TRegistry();
     TStringList* slKeys = new TStringList();

     Reg->RootKey = HKEY_LOCAL_MACHINE;
     Reg->OpenKey("HARDWARE\\DEVICEMAP\\SERIALCOMM",true);
     slKeys->Clear();
     Reg->GetKeyNames(slKeys);
     for(i=0;i<2;i++)
         ComboBox1->Items->Add(slKeys->Strings[i]);   // <- 执行到此程序会出错

     Reg->CloseKey();
     delete slKeys;
}

回复列表 (共2个回复)

沙发

你说你的程序在:“ComboBox1->Items->Add(slKeys->Strings[i]);   // <- 执行到此程序会出错 ” 是因为 slKeys此时的值是 NULL 所以出错的 

你的程序只要把这句Reg->GetKeyNames(slKeys);
改为下面的语句就可以了:Reg->GetValueNames(slKeys);

板凳


问题解决了 谢谢!!

我来回复

您尚未登录,请登录后再回复。点此登录或注册