我想从注册表中列出USB VID,并编写了以下Delphi代码:
procedure FindUSBvids(VIDs: TStrings);
var
Reg1: TRegistry;
begin
Reg1 := TRegistry.Create;
try
Reg1.RootKey := HKEY_LOCAL_MACHINE;
Reg1.OpenKey('System\CurrentControlSet\Enum\USB', False);
Reg1.GetKeyNames(VIDs);
finally
Reg1.Free;
end;
end;
procedure TForm1.Button6Click(Sender: TObject);
FindUSBvids(Memo2.Lines);
end;
不幸的是,备忘录仍然是空的。我对密钥进行了三遍检查,它存在并且有几十个子密钥。我究竟做错了什么?
(注意:我不确定这是否是找到USB VID的正确方法,但这不是重点。这只是让我感到困惑,为什么代码不会产生任何结果。)
最佳答案
您正在要求对注册表项的写访问权。使用OpenKeyReadOnly
代替OpenKey
。