先谢谢各位大爷们。能过来帮我。问题如下:下边的是 直接delphi的代码。读取注册表项的。然后显示到listbox的item里边
Procedure Explorer;
Var
reg : TRegistry;
Begin
reg := TRegistry.Create;
With reg Do
Begin
Rootkey := HKEY_LOCAL_MACHINE;
If OpenKey('\SOFTWARE\Clients', false) Then
Begin
GetKeyNames(Form1.ListBox1.Items);
End;
CloseKey;
Destroy;
End;
End;
然后下边是KOL代码Procedure Explorer;
Var
reg : PExRegistry;
s:Integer;
Begin
reg := NewExRegistry;
//s:=
Begin
reg.Rootkey := HKEY_LOCAL_MACHINE;
If reg.OpenKey('\SOFTWARE\Clients', false) Then
Begin
reg.GetKeyNames(form1.listbox1); //这里咋写?????Form1.ListBox1.Items不行。哎
End;
reg.CloseKey;
reg.Destroy;
End;
End;问题就是这样的。
reg.GetKeyNames(form1.listbox1); 这里在KOL中的写法。Form1.ListBox1.Items不行。哎谢谢大爷们啦。帮小弟下。。
Procedure Explorer;
Var
reg : TRegistry;
Begin
reg := TRegistry.Create;
With reg Do
Begin
Rootkey := HKEY_LOCAL_MACHINE;
If OpenKey('\SOFTWARE\Clients', false) Then
Begin
GetKeyNames(Form1.ListBox1.Items);
End;
CloseKey;
Destroy;
End;
End;
然后下边是KOL代码Procedure Explorer;
Var
reg : PExRegistry;
s:Integer;
Begin
reg := NewExRegistry;
//s:=
Begin
reg.Rootkey := HKEY_LOCAL_MACHINE;
If reg.OpenKey('\SOFTWARE\Clients', false) Then
Begin
reg.GetKeyNames(form1.listbox1); //这里咋写?????Form1.ListBox1.Items不行。哎
End;
reg.CloseKey;
reg.Destroy;
End;
End;问题就是这样的。
reg.GetKeyNames(form1.listbox1); 这里在KOL中的写法。Form1.ListBox1.Items不行。哎谢谢大爷们啦。帮小弟下。。
Begin
ss:=Tstringlist.create;
reg.GetKeyNames(ss);
form1.listbox1.items.text:=ss.text;
ss.free;
End;
行不行?
Var
reg : PExRegistry;
ss:Tstrings;
Begin
reg := NewExRegistry;
ss:=Tstringlist.create;
Begin
reg.Rootkey := HKEY_LOCAL_MACHINE;
If reg.OpenKey('\SOFTWARE\Clients\StartMenuInternet', false) Then
Begin
reg.GetKeyNames(ss);
form1.listbox1.items.text:=ss.text;
ss.free;
End;
reg.CloseKey;
reg.Destroy;
End;
End;不行哎。
不过PStrList变量怎么给strings、怎么释放,就要看kol是怎么实现的了
Var
reg : PExRegistry;
ss:PStrList;
i:Integer;
Begin
reg := NewExRegistry;
ss:= NewStrList;
Begin
reg.Rootkey := HKEY_LOCAL_MACHINE;
ss := NewStrList;
If reg.OpenKey('\SOFTWARE\Clients\StartMenuInternet', false) Then
Begin
reg.GetKeyNames(ss);
for i := 0 to ss.Count - 1 do
ListBox1.Items[i] := UpperCase (ss.Items[i]);
ss.free;
End;
reg.CloseKey;
reg.Destroy;
End;
End;自己搞定 哦也~