HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USBSTOR\Disk&Ven_Kingston&Prod_DataTraveler_2.0&Rev_PMAP\5B85060013A9&0
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USBSTOR\Disk&Ven_Multi&Prod_Flash_Reader&Rev_1.00\058F0O1111B&0
路径相同,我用reg.OpenKey只能读到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USBSTOR\的下级目录位置
后面的内容不同,我想把后面那些内容一起读出一个listview去,
还能怎么操作?
请高手指点,谢谢
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USBSTOR\Disk&Ven_Multi&Prod_Flash_Reader&Rev_1.00\058F0O1111B&0
路径相同,我用reg.OpenKey只能读到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USBSTOR\的下级目录位置
后面的内容不同,我想把后面那些内容一起读出一个listview去,
还能怎么操作?
请高手指点,谢谢
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USBSTOR\Disk&Ven_Multi&Prod_Flash_Reader&Rev_1.00\058F0O1111B&0var
Myreg:TRegistry;
begin
Myreg:=TRegistry.create;
Myreg.rootkey:=HKEY_LOCAL_MACHINE;
Myreg.openkey('\CurrentControlSet\Enum\USBSTOR\Disk&Ven_Kingston&Prod_DataTraveler_2.0&Rev_PMAP\5B85060013A9&0',false);
...
Myreg.openkey('\CurrentControlSet\Enum\USBSTOR\Disk&Ven_Multi&Prod_Flash_Reader&Rev_1.00\058F0O1111B&0',false);
...
...
Myreg.free;
end;
unit Unit1;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls,registry;type
TForm1 = class(TForm)
Button1: TButton;
Memo1: TMemo;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
var
Key : TRegistry;
subKeyName : TStringList;
begin
key := TRegistry.Create;
subKeyName := TStringList.Create;
Key.RootKey := HKEY_LOCAL_MACHINE;
if Key.OpenKey('\SOFTWARE\Microsoft\AudioCompressionManager\DriverCache',false) then
begin
Key.GetKeyNames(subKeyName);
Memo1.Lines.Text := subKeyName.Text;
end;
FreeAndNil(Key);
FreeAndNil(subKeyName);
end;end.
procedure TForm1.Button1Click(Sender: TObject);
const SUB = '\hardware';
var
r: TRegistry;
sl: TStringList;
i: Integer;
begin
try
r := TRegistry.Create;
sl := TStringList.Create;
r.RootKey := HKEY_LOCAL_MACHINE;
if r.OpenKey(SUB, False) then
begin
r.GetKeyNames(sl);
for i := 0 to sl.Count -1 do
memo1.Lines.Append(sl[i]);
end;
finally
r.Free;
end;
end;
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USBSTOR\Disk&Ven_Kingston&Prod_DataTraveler_2.0&Rev_PMAP\5B85060013A9&0
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USBSTOR\Disk&Ven_Multi&Prod_Flash_Reader&Rev_1.00\058F0O1111B&0
注册表里面有很多这样的记录
我拿这两条记录做个比喻
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USBSTOR\此前的内容是相同的
但是此后的内容是不同的,我的问题是想取到所有记录中\058F0O1111B&0目录下的子键的值
因为他上级目录已经不相同,
我只想取注册表中所有记录最后一级目录下的值,应该怎么操作?
上面的高手可能因为我说得不清楚,解释有所偏差.
再次谢谢高手指点下