社区
Delphi
帖子详情
要编一个类似regedit注册表编辑器的软件,有没有现成的控件?
leonatcs
2007-05-09 06:44:34
如题,没有控件有例子也成啊!
...全文
299
11
打赏
收藏
要编一个类似regedit注册表编辑器的软件,有没有现成的控件?
如题,没有控件有例子也成啊!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
11 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
atsoftworld
2007-05-25
打赏
举报
回复
一片混乱,抢?
zhoutaomtv
2007-05-22
打赏
举报
回复
随便抢起啊
kongfancheng
2007-05-10
打赏
举报
回复
DevExpress的TreeList控件专门有一个例子,演示注册表编辑器的做法。你直接基于这个例子修改即可。
do2008
2007-05-10
打赏
举报
回复
伴水在抢分~~~顶~~
王集鹄
2007-05-09
打赏
举报
回复
...职业抢分...
unit main;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, Grids, Outline, ComCtrls, ImgList, ExtCtrls;
type
TForml = class(TForm)
TreeViewl: TTreeView;
ListViewl: TListView;
ImageListl: TImageList;
Splitterl: TSplitter;
procedure FormCreate(Sender: TObject);
procedure TreeViewlChange(Sender: TObject; Node: TTreeNode);
procedure FormDestroy(Sender: TObject);
procedure TreeViewlExpanded(Sender: TObject; Node: TTreeNode);
procedure TreeViewlGetlmagelndex(Sender: TObject; Node: TTreeNode);
private
{ Private declarations }
public
{ Public declarations }
procedure ShowSubKeys(ParentNode: TTreeNode;depth: Integer);
function GetFullNodeName(Node: TTreeNode):string;
end;
var
Forml: TForml;
implementation
uses registry;
{$R *.DFM}
var reg : TRegistry;
procedure TForml.FormCreate(Sender: TObject);
var root : TTreeNode;
begin
Reg := TRegistry.Create;
ListViewl.ViewStyle := vsReport;
with ListViewl do
begin
with Columns.Add do
begin
Width := ListViewl.Width div 3-2;
Caption := 'Name';
end;
with Columns.Add do
begin
Width := ListViewl.Width div 3*2-2;
Caption := 'Value';
end;
end;
TreeViewl.Items.Clear;
Reg.RootKey := HKEY_LOCAL_MACHINE;
Root := TreeViewl.Items.Add(nil,'HKEY_LOCAL_MACHINE');
TreeViewl.Items.AddChildtroot,'');
end;
procedure TForml.FormDestroy(Sender: TObject);
begin
Reg.Free;
end;
function TForml.GetFullNodeName(Node: TTreeNode):string;
var CurNode : TTreeNode;
begin
Result:=''; CurNode := Node;
while CurNode.Parentonil do
begin
Result:= '\'+CurNode.Text + Result;
CurNode := CurNode.Parent;
end;
end;
procedure TForml.TreeViewlChange(Sender: TObject; Node: TTreeNode);
var s: string;
Keylnfo : TRegKeylnfo;
ValueNames : TStringList;
i : Integer;
DataType : TRegDataType;
begin
ListViewl.Items.Clear;
s:= GetFullNodeName(Node);
if not Reg.OpenKeyReadOnly(s) then Exit;
Reg.GetKeylnfo(Keylnfo);
if Keylnfo.NumValues<=0 then Exit;
ValueNames := TStringList.Create;
Reg.GetValueNames(ValueNames);
for i := 0 to ValueNames.Count-1 do
with ListViewl.Items.Add do
begin
Caption := ValueNames[i];
DataType := Reg.GetDataType(ValueNames[i]);
Case DataType of
rdString: s := Reg.ReadString(ValueNames[i]);
rdlnteger: s:= '0x'+IntToHex(Reg.Readlnteger(ValueNames[i]),8);
rdBinary: s:='Binary';
else s:= '???';
end;
Subltems.Add(s);
Imagelndex :=1;
end;
ValueNames.Free;
end;
procedure TForml.ShowSubKeys(ParentNode: TTreeNode;depth: Integer);
var ParentKey: string;
KeyNames : TStringList;
KeyInfo : TRegKeylnfo;
CurNode : TTreeNode; i : Integer;
begin
Cursor := crHourglass;
TreeViewl.Items.BeginUpdate;
ParentKey := GetFullNodeName(ParentNode);
if ParentKeyO1' then
Reg.OpenKeyReadOnly(ParentKey)
else
Reg.OpenKeyReadOnly('\') ;
Reg.GetKeylnfo(Keylnfo) ;
if KeyInfo.NumSubKeys<=0 then Exit;
KeyNames := TStringList.Create;
Reg.GetKeyNames(KeyNames);
While ParentNode.GetFirstChildonil do ParentNode.GetFirstChild.Delete;
if (KeyNames.Count>0) then for i:=0 to KeyNames.Count-1 do
begin
Reg.OpenKeyReadOnly(ParentKey+'\'-t-KeyNames[ i ]) ;
Reg.GetKeylnfo(Keylnfo);
CurNode := TreeViewl.Items.AddChild(ParentNode,KeyNames[i];
if KeyInfo.NumSubKeys>0 then
begin
TreeViewl.Items.AddChild(CurNode, '');
end;
end;
KeyNames.Free;
TreeViewl.Items.EndUpdate;
Cursor := crDefault;
end;
procedure TForml.TreeViewlExpanded(Sender: TObject; Node: TTreeNode);
begin
ShowSubKeys(Node,1);
end;
procedure TForml.TreeViewlGetlmagelndex(Sender: TObject; Node: TTreeNode);
begin
with Node do
begin
if Expanded then Imagelndex := 2
else Imagelndex := 3;
end;
end;
end.
王集鹄
2007-05-09
打赏
举报
回复
参考如下连接
http://www.realcoding.net/teach/Delphi7_prof/Glava5/Index6.html
搜索关键字为:Registry TRegistry TreeView HasChildren
newfang
2007-05-09
打赏
举报
回复
HOHO~~伴水不厚道哦,这么晚了不睡觉给偶抢分分~~
newfang
2007-05-09
打赏
举报
回复
自己写就可以啊
DELPHI有操作注册表的单元,或者直接用API也可以,然后用LIST显示出来就可以了
王集鹄
2007-05-09
打赏
举报
回复
uses Registry;
用Registry单元中的TRegistry类
可以枚举、读写注册表
具体代码自己到网上搜吧
leonatcs
2007-05-09
打赏
举报
回复
楼上说笑了。
橘子香水
2007-05-09
打赏
举报
回复
直接在程序总运行regedit就行了。
如何成为一名黑客(新手入门到大师3集)
哪么如果你怀疑系统被入侵的话,请你首先看看日志的记录或是有什么变化,然后你应该查看可疑进程(win98需要用相关工具)、
注册表
启动项、服务、开放端口等,然后更新病毒库,杀毒。前提是你要有一定的电脑常识并对...
CVE-2018-0802个人浅析
PPS:有童鞋和我反映,想复现和调试这个漏洞,但环境比较难找。由于该漏洞实际触发处为Word内嵌的公式
编辑器
(且为.exe文件),而并非Word程序本身,所以该漏洞能否成功触发环境与实际Office版本无关,而与公式
编辑器
...
黑客技能学习全部资料,专门为菜鸟和小白准备的哦。
克隆帐号的原理简单的说是这样:在
注册表
中有两处保存了帐号的SID相对标志符,一处是SAM\Domains\Account\Users下的子键名,另一处是该子键的子项F的值中。既然是未授权的,就需要借助一些非常规的手段,即通常所说的...
新手常见安全问题
关于被入侵简单说明: ...前提是你要有一定的电脑常识并对你的系统比较了解,才能分别正常与否。如果你自己对电脑一窍不通,那在论坛别人也很难帮助你。其实就像对付现实中的病毒一样,应该预防为主。杀毒
软件
和网络防
网页脚本病毒理解与防护
脚本语言的功能非常强大,它们利用Windows系统具有开放性的特点,通过调用一些
现成
的Windows对象和组件,可以直接对文件系统、
注册表
等进行控制。脚本病毒正是利用脚本语言的这些特点,通过ActiveX进行网页传播,...
Delphi
5,388
社区成员
262,730
社区内容
发帖
与我相关
我的任务
Delphi
Delphi 开发及应用
复制链接
扫一扫
分享
社区描述
Delphi 开发及应用
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章