我想从注册表中列出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

10-06 09:56