小菜求助,关于注册表的问题~

Gue 2003-02-14 03:47:05
我想把RUN主键下的所以键值读到ListBox里,请问要怎么写代码,如果有空的话请给个例子看看,谢谢~~~
...全文
25 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
bdmh 2003-02-14
  • 打赏
  • 举报
回复
编程思路:动态创建一个字符串列表,将注册表某个主键下所有项逐个添加到列表中,这样我们就需要动态创建一个列表项,下面是具体的源代码:

创建一个新的窗体,在上面放一个combobox控件用来添加注册表主键下的所有项目。

CB 为 ComboBox 控件(listbox控件同理)

procedure TForm1.FormCreate(Sender: TObject);

var

reg:Tregistry; //定义注册表类

i:Integer;//用来显示主键下项目的总数

list:Tstringlist;//定义列表项

begin

list:=Tstringlist.Create;//动态创建列表项

reg:=Tregistry.Create;//创建注册表项

reg.RootKey:=HKEY_LOCAL_MACHINE;//定义主键所在的根键(可更改)

if reg.OpenKey('\SOFTWARE\Microsoft\Windows\CurrentVersion\Run',false) then//打开我们想要的主键(可更改)

begin

reg.GetValueNames(list);//将该主键下所有项读到字符串列表中

for i:= 0 to list.Count-1 do

cb.Items.Add(reg.ReadString(list.Strings[i]));//将列表项中的各项逐一添加到cb列表框中

end;

reg.CloseKey;

reg.Destroy;//关闭注册表,释放内存

end;
lxpbuaa 2003-02-14
  • 打赏
  • 举报
回复
uses Registry;

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
Reg: TRegistry;
begin
Reg := TRegistry.Create;
try
Reg.RootKey := HKEY_LOCAL_MACHINE;
if Reg.OpenKey('\SOFTWARE\Microsoft\Windows\CurrentVersion\Run', False) then
begin
Reg.GetKeyNames(ListBox1.Items);
Reg.CloseKey;
end;
finally
Reg.Free;
end;
end;

—————————————————————————————————
宠辱不惊,看庭前花开花落,去留无意;毁誉由人,望天上云卷云舒,聚散任风。
—————————————————————————————————

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧