D
deanjoy
Unregistered / Unconfirmed
GUEST, unregistred user!
procedure ReadUninstallItems;//读取注册表中的反安装项目
var reg:TRegistry;
names:TStrings;//所有反安装的项目
index,num:integer;//项目的序号和总数
name:string;//项目的键名
value:string;//键值
info:TRegKeyInfo;
begin
index:=0;
mainform.lst_uninstall.Items.Clear;//一个列表匡
names:=TStrings.Create;
reg:=TRegistry.Create;
reg.RootKey:=HKEY_LOCAL_MACHINE;
reg.OpenKey('Software/Microsoft/Windows/CurrentVersion/Uninstall',false);
if reg.GetKeyInfo(info) then begin //GetKey()的返回值是boolean
num:=info.NumSubKeys; //得到子键个数
reg.GetKeyNames(names);//得到所有子键
while index<=num do begin //以下列出项目
name:=names.Strings[index];
reg.OpenKey(name,false);
value:=reg.ReadString('DisplayName');
mainform.lst_uninstall.Items.Add(value);
index:=index+1;
end;
end;
reg.free;
names.Free;
end;
结果运行时出现EAbstractError,这应该是重载抽象方法时的错误,但是我这里那个函数是
要重载的呢?帮助里没有说啊!会不会是其他的什么原因呢?
var reg:TRegistry;
names:TStrings;//所有反安装的项目
index,num:integer;//项目的序号和总数
name:string;//项目的键名
value:string;//键值
info:TRegKeyInfo;
begin
index:=0;
mainform.lst_uninstall.Items.Clear;//一个列表匡
names:=TStrings.Create;
reg:=TRegistry.Create;
reg.RootKey:=HKEY_LOCAL_MACHINE;
reg.OpenKey('Software/Microsoft/Windows/CurrentVersion/Uninstall',false);
if reg.GetKeyInfo(info) then begin //GetKey()的返回值是boolean
num:=info.NumSubKeys; //得到子键个数
reg.GetKeyNames(names);//得到所有子键
while index<=num do begin //以下列出项目
name:=names.Strings[index];
reg.OpenKey(name,false);
value:=reg.ReadString('DisplayName');
mainform.lst_uninstall.Items.Add(value);
index:=index+1;
end;
end;
reg.free;
names.Free;
end;
结果运行时出现EAbstractError,这应该是重载抽象方法时的错误,但是我这里那个函数是
要重载的呢?帮助里没有说啊!会不会是其他的什么原因呢?